]> git.proxmox.com Git - mirror_frr.git/commit - babeld/message.c
*: use rb-trees to store interfaces instead of sorted linked-lists
authorRenato Westphal <renato@opensourcerouting.org>
Tue, 3 Oct 2017 01:06:01 +0000 (22:06 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Tue, 10 Oct 2017 12:05:02 +0000 (09:05 -0300)
commitf4e14fdba7de19ca660278a0b8c750140db5868b
tree58eb2d22e84b24672ddff1dd786f18e5bc555b15
parent5d56066e4645ce1104f766cb2a2b767b483c9ce5
*: use rb-trees to store interfaces instead of sorted linked-lists

This is an important optimization for users running FRR on systems with
a large number of interfaces (e.g. thousands of tunnels). Red-black
trees scale much better than sorted linked-lists and also store the
elements in an ordered way (contrary to hash tables).

This is a big patch but the interesting bits are all in lib/if.[ch].

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
49 files changed:
babeld/babel_interface.c
babeld/babel_interface.h
babeld/babeld.c
babeld/message.c
bgpd/bgp_zebra.c
bgpd/bgpd.c
eigrpd/eigrp_filter.c
eigrpd/eigrp_network.c
eigrpd/eigrp_vty.c
eigrpd/eigrpd.c
isisd/isis_circuit.c
isisd/isis_te.c
ldpd/ldp_zebra.c
lib/if.c
lib/if.h
lib/vrf.c
lib/vrf.h
nhrpd/nhrp_nhs.c
nhrpd/nhrp_vty.c
ospf6d/ospf6_bfd.c
ospf6d/ospf6_interface.c
ospf6d/ospf6_main.c
ospf6d/ospf6_snmp.c
ospfd/ospf_te.c
ospfd/ospf_vty.c
ospfd/ospfd.c
pimd/pim_bfd.c
pimd/pim_cmd.c
pimd/pim_iface.c
pimd/pim_ifchannel.c
pimd/pim_jp_agg.c
pimd/pim_nht.c
pimd/pim_rp.c
pimd/pim_upstream.c
pimd/pim_vty.c
pimd/pim_zebra.c
ripd/rip_interface.c
ripd/ripd.c
ripngd/ripng_interface.c
ripngd/ripngd.c
zebra/if_ioctl.c
zebra/interface.c
zebra/irdp_main.c
zebra/rtadv.c
zebra/zebra_l2.c
zebra/zebra_ptm.c
zebra/zebra_vrf.c
zebra/zebra_vxlan.c
zebra/zserv.c