* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | Next Header | Hdr Ext Len | Routing Type | Segments Left |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * | First Segment | Flags | RESERVED |
+ * | Last Entry | Flags | Tag |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | |
* | Segment List[0] (128 bits IPv6 address) |
*
* o Routing Type: TBD, to be assigned by IANA (suggested value: 4).
*
- * o Segments Left. Defined in [RFC2460], it contains the index, in
+ * o Segments Left. Defined in [RFC8200], it contains the index, in
* the Segment List, of the next segment to inspect. Segments Left
* is decremented at each segment.
*
- * o First Segment: contains the index, in the Segment List, of the
- * first segment of the path which is in fact the last element of the
- * Segment List.
+ * o Last Entry: contains the index (zero based), in the Segment List,
+ * of the the last element of the Segment List
*
* o Flags: 8 bits of flags. Following flags are defined:
*
* 36 octets of the SRH represent the HMAC information. See
* Section 3.1.5 for details on the HMAC TLV.
*
- * o RESERVED: SHOULD be unset on transmission and MUST be ignored on
- * receipt.
+ * o Tag: tag a packet as part of a class or group of packets, e.g.,
+ * packets sharing the same set of properties. When tag is not used
+ * at source it MUST be set to zero on transmission. When tag is not
+ * used during SRH Processing it SHOULD be ignored.
*
* o Segment List[n]: 128 bit IPv6 addresses representing the nth
* segment in the Segment List. The Segment List is encoded starting
u8 segments_left;
/* Pointer to the first segment in the header */
- u8 first_segment;
+ u8 last_entry;
/* Flag bits */
#define IP6_SR_HEADER_FLAG_PROTECTED (0x40)
/* values 0x0, 0x4 - 0x7 are reserved */
u8 flags;
- u16 reserved;
+ u16 tag;
/* The segment elts */
ip6_address_t segments[0];
} __attribute__ ((packed)) ip6_sr_header_t;
+typedef struct
+{
+ u8 type;
+ u8 length;
+ u8 value[0];
+} __attribute__ ((packed)) ip6_sr_tlv_t;
+
/*
* fd.io coding-style-patch-verification: ON
*