10 #include "../endian_conversion.h"
13 #include "../fframe.h"
14 #include "../caddress.h"
34 VLAN_CTAG_ETHER = 0x8100,
35 VLAN_STAG_ETHER = 0x88a8,
36 VLAN_ITAG_ETHER = 0x88e7,
46 } __attribute__((packed));
49 #if __BYTE_ORDER == __LITTLE_ENDIAN
53 #elif __BYTE_ORDER == __BIG_ENDIAN
93 uint8_t *data,
size_t datalen);
110 validate(uint16_t total_len = 0)
const;
143 set_dl_vlan_id(uint16_t vid);
155 set_dl_vlan_pcp(uint8_t pcp);
161 get_dl_vlan_pcp() const;
167 set_dl_vlan_cfi(
bool cfi);
173 get_dl_vlan_cfi() const;
195 operator<< (std::ostream& os,
fvlanframe const& frame) {
196 os << dynamic_cast<fframe const&>( frame ) << std::endl;
197 os <<
indent(2) <<
"<fvlanframe ";
198 os <<
"vid:" << (int)frame.get_dl_vlan_id() <<
" ";
199 os <<
"pcp:" << (int)frame.get_dl_vlan_pcp() <<
" ";
200 os <<
"cfi:" << (int)frame.get_dl_vlan_cfi() <<
" ";
201 os <<
"inner-dl-type:" << (int)frame.get_dl_type() <<
" ";
202 os <<
">" << std::endl;
virtual void initialize()
Definition: fvlanframe.cc:44
virtual size_t need_bytes() const
Definition: fvlanframe.cc:63
uint16_t get_dl_type() const
Definition: fvlanframe.cc:191
Definition: fvlanframe.h:27
virtual void payload_insert(uint8_t *data, size_t datalen)
Definition: fvlanframe.cc:75
void set_dl_type(uint16_t dl_type)
Definition: fvlanframe.cc:177
uint16_t get_dl_vlan_id() const
Definition: fvlanframe.cc:134
virtual void validate(uint16_t total_len=0) const
Definition: fvlanframe.cc:112
virtual ~fvlanframe()
Definition: fvlanframe.cc:28
virtual size_t payloadlen() const
Definition: fvlanframe.cc:100
virtual uint8_t * payload() const
Definition: fvlanframe.cc:88
virtual void reset(uint8_t *data, size_t datalen)
Definition: fvlanframe.cc:35
fvlanframe(uint8_t *data, size_t datalen)
Definition: fvlanframe.cc:9
Definition: fvlanframe.h:21
virtual bool complete() const
Definition: fvlanframe.cc:51
Definition: fvlanframe.h:19
Definition: fvlanframe.h:40
Definition: fvlanframe.h:20