Add support for parsing PW Ethernet and Enhanced MPLS parsing

This commit is contained in:
luwenpeng
2024-06-02 00:07:33 +08:00
parent f3b92a8a15
commit 18fe1e2e41
13 changed files with 615 additions and 250 deletions

View File

@@ -12,36 +12,37 @@ enum layer_type
{
// L2 -- data link layer
LAYER_TYPE_ETHER = 1 << 0,
LAYER_TYPE_PPP = 1 << 1,
LAYER_TYPE_HDLC = 1 << 2,
LAYER_TYPE_L2TP = 1 << 3,
LAYER_TYPE_L2 = (LAYER_TYPE_ETHER | LAYER_TYPE_PPP | LAYER_TYPE_HDLC | LAYER_TYPE_L2TP),
LAYER_TYPE_PWETH = 1 << 1,
LAYER_TYPE_PPP = 1 << 2,
LAYER_TYPE_HDLC = 1 << 3,
LAYER_TYPE_L2TP = 1 << 4,
LAYER_TYPE_L2 = (LAYER_TYPE_ETHER | LAYER_TYPE_PWETH | LAYER_TYPE_PPP | LAYER_TYPE_HDLC | LAYER_TYPE_L2TP),
// L2 -- tunnel
LAYER_TYPE_VLAN = 1 << 4,
LAYER_TYPE_PPPOE = 1 << 5,
LAYER_TYPE_MPLS = 1 << 6,
LAYER_TYPE_VLAN = 1 << 5,
LAYER_TYPE_PPPOE = 1 << 6,
LAYER_TYPE_MPLS = 1 << 7,
LAYER_TYPE_L2_TUN = (LAYER_TYPE_VLAN | LAYER_TYPE_PPPOE | LAYER_TYPE_MPLS),
// L3 -- network layer
LAYER_TYPE_IPV4 = 1 << 7,
LAYER_TYPE_IPV6 = 1 << 8,
LAYER_TYPE_IPV4 = 1 << 8,
LAYER_TYPE_IPV6 = 1 << 9,
LAYER_TYPE_L3 = (LAYER_TYPE_IPV4 | LAYER_TYPE_IPV6),
// L3 -- tunnel
LAYER_TYPE_GRE = 1 << 9,
LAYER_TYPE_GRE = 1 << 10,
LAYER_TYPE_L3_TUN = (LAYER_TYPE_GRE),
// L4 -- transport layer
LAYER_TYPE_UDP = 1 << 10,
LAYER_TYPE_TCP = 1 << 11,
LAYER_TYPE_ICMP = 1 << 12,
LAYER_TYPE_ICMP6 = 1 << 13,
LAYER_TYPE_UDP = 1 << 11,
LAYER_TYPE_TCP = 1 << 12,
LAYER_TYPE_ICMP = 1 << 13,
LAYER_TYPE_ICMP6 = 1 << 14,
LAYER_TYPE_L4 = (LAYER_TYPE_UDP | LAYER_TYPE_TCP | LAYER_TYPE_ICMP | LAYER_TYPE_ICMP6),
// L4 -- tunnel
LAYER_TYPE_VXLAN = 1 << 14,
LAYER_TYPE_GTPV1_U = 1 << 15,
LAYER_TYPE_VXLAN = 1 << 15,
LAYER_TYPE_GTPV1_U = 1 << 16,
// ALL
LAYER_TYPE_ALL = (LAYER_TYPE_L2 | LAYER_TYPE_L2_TUN | LAYER_TYPE_L3 | LAYER_TYPE_L3_TUN | LAYER_TYPE_L4 | LAYER_TYPE_VXLAN | LAYER_TYPE_GTPV1_U),