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>
diff --git a/src/vnet/CMakeLists.txt b/src/vnet/CMakeLists.txt
index dcba3c7..9867b7c 100644
--- a/src/vnet/CMakeLists.txt
+++ b/src/vnet/CMakeLists.txt
@@ -128,6 +128,7 @@
# Layer 2 protocol: Ethernet
##############################################################################
list(APPEND VNET_SOURCES
+ ethernet/arp_packet.c
ethernet/ethernet_types_api.c
ethernet/format.c
ethernet/init.c
@@ -154,6 +155,7 @@
ethernet/types.def
ethernet/sfp.h
ethernet/p2p_ethernet.h
+ ethernet/arp_packet.h
)
list(APPEND VNET_API_FILES
@@ -166,6 +168,7 @@
list(APPEND VNET_SOURCES
l2/feat_bitmap.c
l2/l2_api.c
+ l2/l2_arp_term.c
l2/l2_bd.c
l2/l2_bvi.c
l2/l2_bvi_node.c
@@ -422,6 +425,7 @@
ip/icmp6.c
ip/ip46_cli.c
ip/ip_types_api.c
+ ip/ip46_address.c
ip/ip4_format.c
ip/ip4_forward.c
ip/ip4_punt_drop.c
@@ -440,12 +444,10 @@
ip/ip6_punt_drop.c
ip/ip6_hop_by_hop.c
ip/ip6_input.c
- ip/ip6_neighbor.c
+ ip/ip6_link.c
ip/ip6_pg.c
ip/reass/ip6_full_reass.c
ip/reass/ip6_sv_reass.c
- ip/rd_cp.c
- ip/ip_neighbor.c
ip/ip_api.c
ip/ip_checksum.c
ip/ip_frag.c
@@ -486,16 +488,15 @@
ip/ip4.h
ip/ip4_mtrie.h
ip/ip4_packet.h
+ ip/ip46_address.h
ip/ip6_error.h
ip/ip6.h
ip/ip6_hop_by_hop.h
ip/ip6_hop_by_hop_packet.h
ip/ip6_packet.h
- ip/ip6_neighbor.h
ip/ip.h
ip/ip_packet.h
ip/ip_source_and_port_range_check.h
- ip/ip_neighbor.h
ip/ip_types.h
ip/lookup.h
ip/ports.def
@@ -506,7 +507,6 @@
list(APPEND VNET_API_FILES
ip/ip.api
- ip/rd_cp.api
ip/punt.api
)
@@ -517,15 +517,25 @@
)
##############################################################################
-# Layer 2/3 ARP
+# Layer 3 neighbours
##############################################################################
list(APPEND VNET_SOURCES
- ethernet/arp.c
+ ip-neighbor/ip_neighbor.c
+ ip-neighbor/ip_neighbor_api.c
+ ip-neighbor/ip_neighbor_dp.c
+ ip-neighbor/ip_neighbor_types.c
+ ip-neighbor/ip_neighbor_watch.c
+ ip-neighbor/ip4_neighbor.c
+ ip-neighbor/ip6_neighbor.c
)
list(APPEND VNET_HEADERS
- ethernet/arp_packet.h
- ethernet/arp.h
+ ip-neighbor/ip_neighbor.h
+ ip-neighbor/ip_neighbor_types.h
+)
+
+list(APPEND VNET_API_FILES
+ ip-neighbor/ip_neighbor.api
)
##############################################################################
@@ -1513,6 +1523,41 @@
list(APPEND VNET_API_FILES nhrp/nhrp.api)
##############################################################################
+# ARP/ND
+##############################################################################
+
+list (APPEND VNET_SOURCES
+ arp/arp_api.c
+ arp/arp.c
+ arp/arp_proxy.c
+)
+
+list(APPEND VNET_HEADERS
+ arp/arp.h
+)
+
+list(APPEND VNET_API_FILES arp/arp.api)
+
+list (APPEND VNET_SOURCES
+ ip6-nd/ip6_mld.c
+ ip6-nd/ip6_nd.c
+ ip6-nd/ip6_nd_api.c
+ ip6-nd/ip6_nd_proxy.c
+ ip6-nd/ip6_ra.c
+ ip6-nd/rd_cp.c
+ ip6-nd/rd_cp_api.c
+)
+
+list(APPEND VNET_HEADERS
+ ip6-nd/ip6_nd.h
+)
+
+list(APPEND VNET_API_FILES
+ ip6-nd/ip6_nd.api
+ ip6-nd/rd_cp.api
+)
+
+##############################################################################
# VNET Library
##############################################################################