ip: Protocol Independent IP Neighbors 19/22819/26
authorNeale Ranns <nranns@cisco.com>
Mon, 30 Sep 2019 10:53:31 +0000 (10:53 +0000)
committerOle Trøan <otroan@employees.org>
Tue, 17 Dec 2019 10:56:20 +0000 (10:56 +0000)
commitcbe25aab3be72154f2c706c39eeba6a77f34450f
tree131fb53b5ec973be045ffb9e2eb797af01d112a0
parent96453fd2417ebd1d69354a7fb692976129cea80e
ip: Protocol Independent IP Neighbors

Type: feature

 - ip-neighbour: generic neighbour handling; APIs, DBs, event handling,
aging
 - arp: ARP protocol implementation
 - ip6-nd; IPv6 neighbor discovery implementation; separate ND,
MLD, RA
 - ip6-link; manage link-local addresses
 - l2-arp-term; events separated from IP neighbours, since they are not
the same.

vnet retains just enough education to perform ND/ARP packet
construction.
arp and ip6-nd to be moved to plugins soon.

Change-Id: I88dedd0006b299344f4c7024a0aa5baa6b9a8bbe
Signed-off-by: Neale Ranns <nranns@cisco.com>
140 files changed:
MAINTAINERS
extras/vom/vom/.clang-format
extras/vom/vom/api_types.cpp
extras/vom/vom/api_types.hpp
extras/vom/vom/arp_proxy_binding_cmds.cpp
extras/vom/vom/arp_proxy_binding_cmds.hpp
extras/vom/vom/arp_proxy_config_cmds.cpp
extras/vom/vom/arp_proxy_config_cmds.hpp
extras/vom/vom/interface_ip6_nd_cmds.cpp
extras/vom/vom/neighbour_cmds.cpp
extras/vom/vom/neighbour_cmds.hpp
extras/vom/vom/ra_config.cpp
extras/vom/vom/ra_config.hpp
extras/vom/vom/ra_prefix.hpp
src/plugins/abf/test/test_abf.py
src/plugins/acl/test/test_acl_plugin_conns.py
src/plugins/acl/test/test_acl_plugin_l2l3.py
src/plugins/dhcp/dhcp6_ia_na_client_cp.c
src/plugins/dhcp/dhcp6_ia_na_client_dp.c
src/plugins/dhcp/dhcp6_pd_client_cp.c
src/plugins/dhcp/dhcp6_pd_client_dp.c
src/plugins/dhcp/test/test_dhcp.py
src/plugins/gbp/gbp_endpoint.c
src/plugins/gbp/gbp_route_domain.c
src/plugins/l3xc/test/test_l3xc.py
src/plugins/mactime/builtins.c
src/plugins/mactime/mactime.c
src/plugins/mactime/mactime.h
src/plugins/mactime/test/test_mactime.py
src/plugins/nat/nat64_in2out.c
src/plugins/ping/ping.c
src/plugins/srv6-ad/test/test_srv6_ad.py
src/plugins/srv6-am/test/test_srv6.py
src/plugins/srv6-as/test/test_srv6_as.py
src/plugins/svs/test/test_svs.py
src/vat/api_format.c
src/vlibapi/api_helper_macros.h
src/vnet/CMakeLists.txt
src/vnet/adj/adj.h
src/vnet/adj/adj_glean.c
src/vnet/adj/adj_internal.h
src/vnet/adj/adj_mcast.c
src/vnet/adj/adj_nbr.c
src/vnet/api_errno.h
src/vnet/arp/arp.api [new file with mode: 0644]
src/vnet/arp/arp.c [new file with mode: 0644]
src/vnet/arp/arp.h [new file with mode: 0644]
src/vnet/arp/arp_api.c [new file with mode: 0644]
src/vnet/arp/arp_packet.h [new file with mode: 0644]
src/vnet/arp/arp_proxy.c [new file with mode: 0644]
src/vnet/arp/arp_test.c [new file with mode: 0644]
src/vnet/bfd/bfd_api.h
src/vnet/bfd/bfd_udp.c
src/vnet/bonding/device.c
src/vnet/ethernet/arp.c [deleted file]
src/vnet/ethernet/arp.h [deleted file]
src/vnet/ethernet/arp_packet.c [new file with mode: 0644]
src/vnet/ethernet/arp_packet.h
src/vnet/ethernet/ethernet.h
src/vnet/ethernet/interface.c
src/vnet/ethernet/mac_address.c
src/vnet/ethernet/mac_address.h
src/vnet/fib/fib_entry.c
src/vnet/fib/fib_path.c
src/vnet/fib/fib_table.h
src/vnet/fib/fib_types.c
src/vnet/fib/fib_types.h
src/vnet/fib/ip4_fib.c
src/vnet/fib/ip6_fib.c
src/vnet/ip-neighbor/ip4_neighbor.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip4_neighbor.h [new file with mode: 0644]
src/vnet/ip-neighbor/ip6_neighbor.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip6_neighbor.h [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor.api [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor.h [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor_api.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor_dp.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor_dp.h [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor_types.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor_types.h [moved from src/vnet/ip/ip_neighbor.h with 51% similarity]
src/vnet/ip-neighbor/ip_neighbor_watch.c [new file with mode: 0644]
src/vnet/ip-neighbor/ip_neighbor_watch.h [new file with mode: 0644]
src/vnet/ip/format.h
src/vnet/ip/icmp46_packet.h
src/vnet/ip/icmp6.c
src/vnet/ip/ip.api
src/vnet/ip/ip4.h
src/vnet/ip/ip46_address.c [new file with mode: 0644]
src/vnet/ip/ip46_address.h [new file with mode: 0644]
src/vnet/ip/ip4_forward.c
src/vnet/ip/ip6.h
src/vnet/ip/ip6_forward.c
src/vnet/ip/ip6_link.c [new file with mode: 0644]
src/vnet/ip/ip6_link.h [new file with mode: 0644]
src/vnet/ip/ip6_neighbor.c [deleted file]
src/vnet/ip/ip6_neighbor.h [deleted file]
src/vnet/ip/ip6_packet.h
src/vnet/ip/ip_api.c
src/vnet/ip/ip_neighbor.c [deleted file]
src/vnet/ip/lookup.c
src/vnet/ip6-nd/ip6_mld.c [new file with mode: 0644]
src/vnet/ip6-nd/ip6_nd.api [new file with mode: 0644]
src/vnet/ip6-nd/ip6_nd.c [new file with mode: 0644]
src/vnet/ip6-nd/ip6_nd.h [new file with mode: 0644]
src/vnet/ip6-nd/ip6_nd_api.c [new file with mode: 0644]
src/vnet/ip6-nd/ip6_nd_proxy.c [new file with mode: 0644]
src/vnet/ip6-nd/ip6_nd_test.c [new file with mode: 0644]
src/vnet/ip6-nd/ip6_ra.c [new file with mode: 0644]
src/vnet/ip6-nd/ip6_ra.h [new file with mode: 0644]
src/vnet/ip6-nd/rd_cp.api [moved from src/vnet/ip/rd_cp.api with 100% similarity]
src/vnet/ip6-nd/rd_cp.c [moved from src/vnet/ip/rd_cp.c with 84% similarity]
src/vnet/ip6-nd/rd_cp.h [new file with mode: 0644]
src/vnet/ip6-nd/rd_cp_api.c [new file with mode: 0644]
src/vnet/l2/l2.api
src/vnet/l2/l2_api.c
src/vnet/l2/l2_arp_term.c [new file with mode: 0644]
src/vnet/l2/l2_arp_term.h [new file with mode: 0644]
src/vnet/l2/l2_bd.h
src/vnet/tcp/tcp.c
src/vnet/vnet_all_api_h.h
src/vpp/api/api.c
src/vpp/api/custom_dump.c
test/test_bond.py
test/test_container.py
test/test_ip4.py
test/test_ip4_irb.py
test/test_ip4_vrf_multi_instance.py
test/test_ip6.py
test/test_ip_ecmp.py
test/test_l2bd_arp_term.py
test/test_mpls.py
test/test_neighbor.py
test/test_ping.py
test/test_punt.py
test/test_sixrd.py
test/test_srmpls.py
test/test_udp.py
test/vpp_neighbor.py
test/vpp_papi_provider.py