// // Created by xajhuang on 2023/3/18. // #ifndef VCPE_VLAN_H #define VCPE_VLAN_H #ifdef __cplusplus extern "C" { #endif #include #include #include #include "common.h" #define VLAN_SUPPORT (1) #pragma pack(push) #pragma pack(1) #define VXLAN_VIN_ID_PACK(x) ((ntohs(x)) & 0xFFF) typedef struct vlan_hdr { #if VLAN_SUPPORT U16 id; U16 type; #endif } VLAN_HDR, *PVLAN_HDR; typedef struct { struct ethhdr eth; #if VLAN_SUPPORT struct vlan_hdr vlan; #endif struct iphdr ip; struct udphdr udp; } VLAN_PKG_HDR, *PVLAN_PKG_HDR; #pragma pack(pop) #ifdef __cplusplus } #endif #endif //VCPE_VLAN_H