diff options
author | Peter Hessler <phessler@cvs.openbsd.org> | 2015-11-06 16:23:27 +0000 |
---|---|---|
committer | Peter Hessler <phessler@cvs.openbsd.org> | 2015-11-06 16:23:27 +0000 |
commit | a2d73a6e03320647a8a072bc4d56eba608ca1423 (patch) | |
tree | e6c0b11ba21b300ed7f5da775338e5fe8f6c1929 /usr.sbin/bgpd/rde.h | |
parent | 1b8f98a388d899c899bae4b80b6d158a3f3acd1f (diff) |
Radically improve the performance of bgpd filters. Based on PF's skip
steps (and uses much of the same code).
In a torture test of ~600k prefix filters and 65k prefixes, convergance
time goes from 35 minutes to 30 seconds.
Many thanks to LONAP for providing a base configuration for torture
testing.
many discussions with claudio@, benno@, sthen@ and the rest of the bgpd crowd
OK sthen@ benno@
Diffstat (limited to 'usr.sbin/bgpd/rde.h')
-rw-r--r-- | usr.sbin/bgpd/rde.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.sbin/bgpd/rde.h b/usr.sbin/bgpd/rde.h index 02b755d0888..1ff890a1a0c 100644 --- a/usr.sbin/bgpd/rde.h +++ b/usr.sbin/bgpd/rde.h @@ -1,4 +1,4 @@ -/* $OpenBSD: rde.h,v 1.148 2015/03/14 03:52:42 claudio Exp $ */ +/* $OpenBSD: rde.h,v 1.149 2015/11/06 16:23:26 phessler Exp $ */ /* * Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org> and @@ -387,6 +387,7 @@ void rde_apply_set(struct rde_aspath *, struct filter_set_head *, u_int8_t, struct rde_peer *, struct rde_peer *); int rde_filter_equal(struct filter_head *, struct filter_head *, struct rde_peer *); +void rde_filter_calc_skip_steps(struct filter_head *); /* rde_prefix.c */ #define pt_empty(pt) ((pt)->refcnt == 0) |