A Protocol Independent Hierarchical FIB (VPP-352) 02/2502/17
authorNeale Ranns <nranns@cisco.com>
Thu, 25 Aug 2016 14:29:12 +0000 (15:29 +0100)
committerDamjan Marion <dmarion.lists@gmail.com>
Wed, 21 Sep 2016 17:37:39 +0000 (17:37 +0000)
commit0bfe5d8c792abcdbcf27bfcc7b7b353fba04aee2
treed600b0e2e693e766e722936744930d3bebac493c
parent60537f3d83e83d0ce10a620ca99aad4eddf85f5e
A Protocol Independent Hierarchical FIB (VPP-352)

Main Enhancements:
 - Protocol Independent FIB API
 - Hierarchical FIB entries. Dynamic recursive route resolution.
 - Extranet Support.
 - Integration of IP and MPLS forwarding.
 - Separation of FIB and Adjacency databases.
 - Data-Plane Object forwarding model.

Change-Id: I52dc815c0d0aa8b493e3cf6b978568f3cc82296c
Signed-off-by: Neale Ranns <nranns@cisco.com>
197 files changed:
.gitignore
plugins/ila-plugin/ila/ila.c
plugins/ila-plugin/ila/ila.h
plugins/lb-plugin/lb/lb.c
plugins/lb-plugin/lb/node.c
plugins/sixrd-plugin/Makefile.am
plugins/sixrd-plugin/sixrd/sixrd.c
plugins/sixrd-plugin/sixrd/sixrd.h
plugins/sixrd-plugin/sixrd/sixrd_dpo.c [new file with mode: 0644]
plugins/sixrd-plugin/sixrd/sixrd_dpo.h [new file with mode: 0644]
plugins/vcgn-plugin/vcgn/vcgn_classify.c
vnet/Makefile.am
vnet/etc/scripts/arp4-mpls [new file with mode: 0644]
vnet/etc/scripts/lfib/ip4-to-mpls [new file with mode: 0644]
vnet/etc/scripts/lfib/mpls-pop-to-mpls [new file with mode: 0644]
vnet/etc/scripts/lfib/mpls-to-ip4 [new file with mode: 0644]
vnet/etc/scripts/lfib/mpls-to-mpls [new file with mode: 0644]
vnet/etc/scripts/mpls-o-ethernet/pg [new file with mode: 0644]
vnet/etc/scripts/mpls-o-ethernet/single.conf [new file with mode: 0644]
vnet/etc/scripts/source_and_port_range_check [new file with mode: 0644]
vnet/vnet/adj/adj.c [new file with mode: 0644]
vnet/vnet/adj/adj.h [new file with mode: 0644]
vnet/vnet/adj/adj_alloc.c [moved from vnet/vnet/ip/adj_alloc.c with 72% similarity]
vnet/vnet/adj/adj_alloc.h [moved from vnet/vnet/ip/adj_alloc.h with 87% similarity]
vnet/vnet/adj/adj_glean.c [new file with mode: 0644]
vnet/vnet/adj/adj_glean.h [new file with mode: 0644]
vnet/vnet/adj/adj_internal.h [new file with mode: 0644]
vnet/vnet/adj/adj_midchain.c [new file with mode: 0644]
vnet/vnet/adj/adj_midchain.h [new file with mode: 0644]
vnet/vnet/adj/adj_nbr.c [new file with mode: 0644]
vnet/vnet/adj/adj_nbr.h [new file with mode: 0644]
vnet/vnet/adj/adj_rewrite.c [new file with mode: 0644]
vnet/vnet/adj/adj_rewrite.h [new file with mode: 0644]
vnet/vnet/adj/adj_types.h [new file with mode: 0644]
vnet/vnet/classify/ip_classify.c
vnet/vnet/classify/vnet_classify.c
vnet/vnet/config.h
vnet/vnet/cop/ip4_whitelist.c
vnet/vnet/cop/ip6_whitelist.c
vnet/vnet/devices/dpdk/cli.c
vnet/vnet/devices/dpdk/node.c
vnet/vnet/devices/ssvm/node.c
vnet/vnet/dhcp/client.c
vnet/vnet/dhcp/proxy_node.c
vnet/vnet/dhcpv6/proxy_node.c
vnet/vnet/dpo/classify_dpo.c [new file with mode: 0644]
vnet/vnet/dpo/classify_dpo.h [new file with mode: 0644]
vnet/vnet/dpo/dpo.c [new file with mode: 0644]
vnet/vnet/dpo/dpo.h [new file with mode: 0644]
vnet/vnet/dpo/drop_dpo.c [new file with mode: 0644]
vnet/vnet/dpo/drop_dpo.h [new file with mode: 0644]
vnet/vnet/dpo/load_balance.c [new file with mode: 0644]
vnet/vnet/dpo/load_balance.h [new file with mode: 0644]
vnet/vnet/dpo/load_balance_map.c [new file with mode: 0644]
vnet/vnet/dpo/load_balance_map.h [new file with mode: 0644]
vnet/vnet/dpo/lookup_dpo.c [new file with mode: 0644]
vnet/vnet/dpo/lookup_dpo.h [new file with mode: 0644]
vnet/vnet/dpo/mpls_label_dpo.c [new file with mode: 0644]
vnet/vnet/dpo/mpls_label_dpo.h [new file with mode: 0644]
vnet/vnet/dpo/punt_dpo.c [new file with mode: 0644]
vnet/vnet/dpo/punt_dpo.h [new file with mode: 0644]
vnet/vnet/dpo/receive_dpo.c [new file with mode: 0644]
vnet/vnet/dpo/receive_dpo.h [new file with mode: 0644]
vnet/vnet/ethernet/arp.c
vnet/vnet/ethernet/ethernet.h
vnet/vnet/ethernet/interface.c
vnet/vnet/fib/fib.c [new file with mode: 0644]
vnet/vnet/fib/fib.h [new file with mode: 0644]
vnet/vnet/fib/fib_attached_export.c [new file with mode: 0644]
vnet/vnet/fib/fib_attached_export.h [new file with mode: 0644]
vnet/vnet/fib/fib_entry.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry.h [new file with mode: 0644]
vnet/vnet/fib/fib_entry_cover.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_cover.h [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src.h [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_adj.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_api.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_default.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_default_route.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_interface.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_lisp.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_mpls.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_rr.c [new file with mode: 0644]
vnet/vnet/fib/fib_entry_src_special.c [new file with mode: 0644]
vnet/vnet/fib/fib_internal.h [new file with mode: 0644]
vnet/vnet/fib/fib_node.c [new file with mode: 0644]
vnet/vnet/fib/fib_node.h [new file with mode: 0644]
vnet/vnet/fib/fib_node_list.c [new file with mode: 0644]
vnet/vnet/fib/fib_node_list.h [new file with mode: 0644]
vnet/vnet/fib/fib_path.c [new file with mode: 0644]
vnet/vnet/fib/fib_path.h [new file with mode: 0644]
vnet/vnet/fib/fib_path_ext.c [new file with mode: 0644]
vnet/vnet/fib/fib_path_ext.h [new file with mode: 0644]
vnet/vnet/fib/fib_path_list.c [new file with mode: 0644]
vnet/vnet/fib/fib_path_list.h [new file with mode: 0644]
vnet/vnet/fib/fib_table.c [new file with mode: 0644]
vnet/vnet/fib/fib_table.h [new file with mode: 0644]
vnet/vnet/fib/fib_test.c [new file with mode: 0644]
vnet/vnet/fib/fib_types.c [new file with mode: 0644]
vnet/vnet/fib/fib_types.h [new file with mode: 0644]
vnet/vnet/fib/fib_walk.c [new file with mode: 0644]
vnet/vnet/fib/fib_walk.h [new file with mode: 0644]
vnet/vnet/fib/ip4_fib.c [new file with mode: 0644]
vnet/vnet/fib/ip4_fib.h [new file with mode: 0644]
vnet/vnet/fib/ip6_fib.c [new file with mode: 0644]
vnet/vnet/fib/ip6_fib.h [new file with mode: 0644]
vnet/vnet/fib/mpls_fib.c [new file with mode: 0644]
vnet/vnet/fib/mpls_fib.h [new file with mode: 0644]
vnet/vnet/gre/gre.c
vnet/vnet/gre/gre.h
vnet/vnet/gre/interface.c
vnet/vnet/gre/node.c
vnet/vnet/handoff.c
vnet/vnet/handoff.h
vnet/vnet/interface.c
vnet/vnet/interface.h
vnet/vnet/interface_cli.c
vnet/vnet/interface_funcs.h
vnet/vnet/ip/format.h
vnet/vnet/ip/ip4.h
vnet/vnet/ip/ip4_forward.c
vnet/vnet/ip/ip4_mtrie.c
vnet/vnet/ip/ip4_mtrie.h
vnet/vnet/ip/ip4_source_and_port_range_check.c
vnet/vnet/ip/ip4_source_check.c
vnet/vnet/ip/ip4_test.c
vnet/vnet/ip/ip6.h
vnet/vnet/ip/ip6_forward.c
vnet/vnet/ip/ip6_hop_by_hop.c
vnet/vnet/ip/ip6_neighbor.c
vnet/vnet/ip/ip6_packet.h
vnet/vnet/ip/ip_feature_registration.c
vnet/vnet/ip/ip_feature_registration.h
vnet/vnet/ip/ip_source_and_port_range_check.h
vnet/vnet/ip/lookup.c
vnet/vnet/ip/lookup.h
vnet/vnet/ip/ping.c
vnet/vnet/ip/udp.h
vnet/vnet/ipsec-gre/ipsec_gre.c
vnet/vnet/lisp-cp/control.c
vnet/vnet/lisp-cp/control.h
vnet/vnet/lisp-cp/lisp_cp_dpo.c [new file with mode: 0644]
vnet/vnet/lisp-cp/lisp_cp_dpo.h [new file with mode: 0644]
vnet/vnet/lisp-cp/lisp_types.c
vnet/vnet/lisp-cp/lisp_types.h
vnet/vnet/lisp-gpe/interface.c
vnet/vnet/lisp-gpe/ip_forward.c
vnet/vnet/lisp-gpe/lisp_gpe.c
vnet/vnet/lisp-gpe/lisp_gpe.h
vnet/vnet/lisp-gpe/lisp_gpe_adjacency.c [new file with mode: 0644]
vnet/vnet/lisp-gpe/lisp_gpe_adjacency.h [new file with mode: 0644]
vnet/vnet/lisp-gpe/lisp_gpe_sub_interface.c [new file with mode: 0644]
vnet/vnet/lisp-gpe/lisp_gpe_sub_interface.h [new file with mode: 0644]
vnet/vnet/lisp-gpe/lisp_gpe_tunnel.c [new file with mode: 0644]
vnet/vnet/lisp-gpe/lisp_gpe_tunnel.h [new file with mode: 0644]
vnet/vnet/map/map.c
vnet/vnet/map/map.h
vnet/vnet/map/map_dpo.c [new file with mode: 0644]
vnet/vnet/map/map_dpo.h [new file with mode: 0644]
vnet/vnet/mcast/mcast_test.c
vnet/vnet/misc.c
vnet/vnet/mpls-gre/node.c [deleted file]
vnet/vnet/mpls-gre/packet.h [deleted file]
vnet/vnet/mpls/error.def [moved from vnet/vnet/mpls-gre/error.def with 91% similarity]
vnet/vnet/mpls/interface.c [moved from vnet/vnet/mpls-gre/interface.c with 69% similarity]
vnet/vnet/mpls/mpls.c [moved from vnet/vnet/mpls-gre/mpls.c with 74% similarity]
vnet/vnet/mpls/mpls.h [moved from vnet/vnet/mpls-gre/mpls.h with 65% similarity]
vnet/vnet/mpls/mpls_features.c [new file with mode: 0644]
vnet/vnet/mpls/mpls_lookup.c [new file with mode: 0644]
vnet/vnet/mpls/mpls_output.c [new file with mode: 0644]
vnet/vnet/mpls/mpls_types.h [new file with mode: 0644]
vnet/vnet/mpls/node.c [new file with mode: 0644]
vnet/vnet/mpls/packet.h [new file with mode: 0644]
vnet/vnet/mpls/pg.c [moved from vnet/vnet/mpls-gre/pg.c with 98% similarity]
vnet/vnet/mpls/policy_encap.c [moved from vnet/vnet/mpls-gre/policy_encap.c with 99% similarity]
vnet/vnet/pg/stream.c
vnet/vnet/rewrite.c
vnet/vnet/sr/sr.c
vnet/vnet/sr/sr.h
vnet/vnet/sr/sr_replicate.c
vnet/vnet/vxlan-gpe/vxlan_gpe.c
vnet/vnet/vxlan/vxlan.c
vpp-api-test/vat/api_format.c
vpp/app/vpe_cli.c
vpp/stats/stats.c
vpp/vpp-api/api.c
vpp/vpp-api/custom_dump.c
vpp/vpp-api/vpe.api
vpp/vpp-api/vpp_get_metrics.c
vppinfra/vppinfra/bihash_24_8.h
vppinfra/vppinfra/bihash_template.c
vppinfra/vppinfra/bihash_template.h
vppinfra/vppinfra/format.c
vppinfra/vppinfra/format.h
vppinfra/vppinfra/hash.h
vppinfra/vppinfra/vec.h