diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/exthdr.h | 9 | ||||
-rw-r--r-- | include/headers.h | 12 |
2 files changed, 21 insertions, 0 deletions
diff --git a/include/exthdr.h b/include/exthdr.h index 06bf6285..32f99c9c 100644 --- a/include/exthdr.h +++ b/include/exthdr.h @@ -57,6 +57,14 @@ enum rt2_hdr_fields { RT2HDR_ADDR, }; +enum rt4_hdr_fields { + RT4HDR_INVALID, + RT4HDR_LASTENT, + RT4HDR_FLAGS, + RT4HDR_TAG, + RT4HDR_SID_1, +}; + enum frag_hdr_fields { FRAGHDR_INVALID, FRAGHDR_NEXTHDR, @@ -87,6 +95,7 @@ extern const struct exthdr_desc exthdr_hbh; extern const struct exthdr_desc exthdr_rt; extern const struct exthdr_desc exthdr_rt0; extern const struct exthdr_desc exthdr_rt2; +extern const struct exthdr_desc exthdr_rt4; extern const struct exthdr_desc exthdr_frag; extern const struct exthdr_desc exthdr_dst; extern const struct exthdr_desc exthdr_mh; diff --git a/include/headers.h b/include/headers.h index 469d6740..3d564deb 100644 --- a/include/headers.h +++ b/include/headers.h @@ -112,6 +112,18 @@ struct ip6_mh { uint8_t data[0]; }; +/* Type 4 Routing header - well known as srh */ +struct ip6_rt4 { + uint8_t ip6r4_nxt; /* next header */ + uint8_t ip6r4_len; /* length in units of 8 octets */ + uint8_t ip6r4_type; /* always zero */ + uint8_t ip6r4_segleft; /* segments left */ + uint8_t ip6r4_last_entry; /* last entry */ + uint8_t ip6r4_flags; /* flags */ + uint16_t ip6r4_tag; /* tag */ + struct in6_addr ip6r4_segments[0]; /* SID list */ +}; + /* RFC 3775 */ #define IP6_MH_TYPE_BRR 0 /* Binding Refresh Request */ #define IP6_MH_TYPE_HOTI 1 /* HOTI Message */ |