Lines Matching +full:fixed +full:- +full:header
7 * Network Service Header:
10 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
12 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
14 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
18 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27 * discussion of MPLS-related forwarding requirements.
32 * example [I-D.ietf-sfc-oam-framework] for one approach).
34 * The O bit MUST be set for OAM packets and MUST NOT be set for non-OAM
65 * Length: The total length, in 4-byte words, of NSH including the Base
66 * Header, the Service Path Header, the Fixed Length Context Header or
67 * Variable Length Context Header(s). The length MUST be 0x6 for MD
69 * 0x2. The length of the NSH header MUST be an integer multiple of 4
73 * MD Type: Indicates the format of NSH beyond the mandatory Base Header
74 * and the Service Path Header. MD Type defines the format of the
77 * 0x0 - This is a reserved value. Implementations SHOULD silently
80 * 0x1 - This indicates that the format of the header includes a fixed
81 * length Context Header (see Figure 4 below).
83 * 0x2 - This does not mandate any headers beyond the Base Header and
84 * Service Path Header, but may contain optional variable length Context
85 * Header(s). The semantics of the variable length Context Header(s)
89 * 0xF - This value is reserved for experimentation and testing, as per
128 * the identified SFP for forwarding along an SFP. If re-classification
129 * occurs, and that re-classification results in a new SPI, the
140 * When the Base Header specifies MD Type = 0x1, a Fixed Length Context
141 * Header (16-bytes) MUST be present immediately following the Service
142 * Path Header. The value of a Fixed Length Context
143 * Header that carries no metadata MUST be set to zero.
145 * When the base header specifies MD Type = 0x2, zero or more Variable
147 * Service Path Header (see Figure 5). Therefore, Length = 0x2,
148 * indicates that only the Base Header followed by the Service Path
149 * Header are present. The optional Variable Length Context Headers
150 * MUST be of an integer number of 4-bytes. The base header Length
159 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
161 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
163 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
177 * case the metadata length is not an integer number of 4-byte words,
179 * byte to extend the metadata to an integer number of 4-byte words.
180 * The receiver MUST round up the length field to the nearest 4-byte
184 * the remaining bytes up to the nearest 4-byte word boundary. The
187 * A value of 0 denotes a Context Header without a Variable Metadata
190 * [0] https://datatracker.ietf.org/doc/draft-ietf-sfc-nsh/
194 * struct nsh_md1_ctx - Keeps track of NSH context data
219 /* Masking NSH header fields. */
243 /* NSH Base Header Length */
246 /* NSH MD Type 1 header Length. */
249 /* NSH header maximum Length. */
262 return ((ntohs(nsh->ver_flags_ttl_len) & NSH_LEN_MASK) in nsh_hdr_len()
268 return (ntohs(nsh->ver_flags_ttl_len) & NSH_VER_MASK) in nsh_get_ver()
274 return (ntohs(nsh->ver_flags_ttl_len) & NSH_FLAGS_MASK) in nsh_get_flags()
280 return (ntohs(nsh->ver_flags_ttl_len) & NSH_TTL_MASK) in nsh_get_ttl()
286 nsh->ver_flags_ttl_len in __nsh_set_xflag()
287 = (nsh->ver_flags_ttl_len & ~htons(xmask)) | htons(xflag); in __nsh_set_xflag()