vcpe/srcs/libs/include/network/vlan.h

44 lines
674 B
C

//
// Created by xajhuang on 2023/3/18.
//
#ifndef VCPE_VLAN_H
#define VCPE_VLAN_H
#ifdef __cplusplus
extern "C" {
#endif
#include <netinet/ip.h>
#include <netinet/udp.h>
#include <linux/if_ether.h>
#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