|
Hybrid ICN (hICN) plugin
v21.06-rc0-4-g18fa668
|
hICN packet format type More...
#include <base.h>
Public Attributes | |
| struct { | |
| u8 l1 | |
| u8 l2 | |
| u8 l3 | |
| u8 l4 | |
| }; | |
| u32 | as_u32 |
| struct { | |
| u8 l1 | |
| u8 l2 | |
| u8 l3 | |
| u8 l4 | |
| }; | |
hICN packet format type
The hICN type represents the sequence of protocols that we can find in packet headers. They are represented as a quartet of u8 values, correponding to IANA protocol assignment, and read from right to left. This is done to faciliate decapsulation of packet header by simple shift/mask operations.
For instance, an IPv6/TCP packet will be identified as : [IPPROTO_NONE, IPPROTO_NONE, IPPROTO_TCP, IPPROTO_IPV6]
We expect four elements to be sufficient for most uses, the max being currently used by an hypothetical signed MAP-Me update : [IPPROTO_ICMPRD, IPPROTO_AH, IPPROTO_ICMP, IPPROTO_IPV6]
| struct { ... } |
protocol layers representation
| struct { ... } |
protocol layers representation
| u32 hicn_type_t::as_u32 |
u32 representation
| u8 hicn_type_t::l1 |
First layer
| u8 hicn_type_t::l2 |
Second layer
| u8 hicn_type_t::l3 |
Third layer
| u8 hicn_type_t::l4 |
Fourth layer
1.8.17