summaryrefslogtreecommitdiff
path: root/ip6.h
diff options
context:
space:
mode:
Diffstat (limited to 'ip6.h')
-rw-r--r--ip6.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/ip6.h b/ip6.h
index 35f12e42..9ed1499c 100644
--- a/ip6.h
+++ b/ip6.h
@@ -174,6 +174,7 @@ struct ip6_rthdr {
#define IPV6_RTHDR_TYPE_0 0
#define IPV6_RTHDR_TYPE_2 2
+#define IPV6_RTHDR_TYPE_4 4
/* Type 0 Routing header */
/* Also used for Type 2 */
@@ -186,6 +187,21 @@ struct ip6_rthdr0 {
struct in6_addr ip6r0_addr[1]; /* up to 23 addresses */
};
+/**
+ * Type 4 Routing header
+ * known as Segment Routing Header 'SRH'
+ */
+struct ip6_srh {
+ nd_uint8_t srh_nxt; /* next header */
+ nd_uint8_t srh_len; /* length in units of 8 octets */
+ nd_uint8_t srh_type; /* Routing Type 4 */
+ nd_uint8_t srh_segleft; /* segments left */
+ nd_uint8_t srh_last_ent; /* Last Entry*/
+ nd_uint8_t srh_flags; /* Flags */
+ nd_uint16_t srh_tag; /* Tag */
+ struct in6_addr srh_segments[1]; /* SRH segments list*/
+};
+
/* Fragment header */
struct ip6_frag {
nd_uint8_t ip6f_nxt; /* next header */