+ hdlc/hdlc.c
+)
+
+list(APPEND VNET_HEADERS
+ hdlc/error.def
+ hdlc/hdlc.h
+ hdlc/packet.h
+)
+
+##############################################################################
+# Layer 2 protocol: LLC
+##############################################################################
+list(APPEND VNET_SOURCES
+ llc/llc.c
+ llc/node.c
+ llc/pg.c
+)
+
+list(APPEND VNET_HEADERS
+ llc/llc.h
+)
+
+##############################################################################
+# Layer 2 protocol: SNAP
+##############################################################################
+list(APPEND VNET_SOURCES
+ snap/snap.c
+ snap/node.c
+ snap/pg.c
+)
+
+list(APPEND VNET_HEADERS
+ snap/snap.h
+)
+
+##############################################################################
+# Layer 2 / vxlan
+##############################################################################
+list(APPEND VNET_SOURCES
+ vxlan/vxlan.c
+ vxlan/encap.c
+ vxlan/decap.c
+ vxlan/vxlan_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ vxlan/encap.c
+)
+
+list(APPEND VNET_HEADERS
+ vxlan/vxlan.h
+ vxlan/vxlan_packet.h
+ vxlan/vxlan_error.def
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES vxlan/decap.c)
+
+list(APPEND VNET_API_FILES vxlan/vxlan.api)
+
+##############################################################################
+# Layer 2 / Geneve
+##############################################################################
+list(APPEND VNET_SOURCES
+ geneve/geneve.c
+ geneve/encap.c
+ geneve/decap.c
+ geneve/geneve_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ geneve/encap.c
+ geneve/decap.c
+)
+
+list(APPEND VNET_HEADERS
+ geneve/geneve.h
+ geneve/geneve_packet.h
+ geneve/geneve_error.def
+)
+
+list(APPEND VNET_API_FILES geneve/geneve.api)
+
+##############################################################################
+# Layer 2 / Bonding
+##############################################################################
+list(APPEND VNET_SOURCES
+ bonding/cli.c
+ bonding/node.c
+ bonding/device.c
+ bonding/bond_api.c
+)
+
+list(APPEND VNET_HEADERS
+ bonding/node.h
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES bonding/node.c bonding/device.c)
+list(APPEND VNET_API_FILES bonding/bond.api)
+
+##############################################################################
+# Layer 2 / LLDP
+##############################################################################
+list(APPEND VNET_SOURCES
+ lldp/lldp_input.c
+ lldp/lldp_node.c
+ lldp/lldp_output.c
+ lldp/lldp_cli.c
+ lldp/lldp_api.c
+)
+
+list(APPEND VNET_HEADERS
+ lldp/lldp_protocol.h
+ lldp/lldp.h
+)
+
+list(APPEND VNET_API_FILES lldp/lldp.api)
+
+##############################################################################
+# Layer 2/3 "classify"
+##############################################################################
+list(APPEND VNET_SOURCES
+ classify/vnet_classify.c
+ classify/trace_classify.h
+ classify/ip_classify.c
+ classify/in_out_acl.c
+ classify/policer_classify.c
+ classify/flow_classify.c
+ classify/flow_classify_node.c
+ classify/vnet_classify.h
+ classify/classify_api.c
+)
+
+list(APPEND VNET_MULTIARCH_SOURCES
+ classify/ip_classify.c
+ classify/flow_classify_node.c
+)
+
+list(APPEND VNET_HEADERS
+ classify/vnet_classify.h
+ classify/trace_classify.h
+ classify/in_out_acl.h
+ classify/policer_classify.h
+ classify/flow_classify.h
+)
+
+list(APPEND VNET_API_FILES classify/classify.api)
+
+##############################################################################
+# Layer 3 protocols go here
+##############################################################################
+
+##############################################################################
+# Layer 3 protocol: IP v4/v6
+##############################################################################
+list(APPEND VNET_SOURCES