Optimized Link State Routing Protocol Version 2 (OLSRv2) and MANET Neighborhood Discovery Protocol (NHDP) Extension TLVs
updated by
- rfc-7722 — Multi-Topology Extension for the Optimized Link State Routing Protocol Version 2 (OLSRv2)
updates
Extracted elements (22)
An UNSPECIFIED TLV value (255) is defined for LOCAL_IF, LINK_STATUS, and OTHER_NEIGHB to enable more efficient multivalue Address Block TLVs and simplify implementations; its interpretation is identical to the address not being associated with a TLV of that type.
RFC 7188 removes the latitude of RFC 6130 and RFC 7181 implementations to reject messages with unrecognized TLV values, enabling protocol extensions that interoperate with unextended implementations. The original specs could be read as allowing rejection on this basis, which would block forward-compatible extensions.
The MPR and NBR_ADDR_TYPE TLVs are respecified as bit fields rather than enumerated values because values 1, 2, and 3 already behaved as bit fields (1, 2, and 'both 1 and 2'), making the conversion natural and backward-compatible with existing implementations.
The conversion of MPR and NBR_ADDR_TYPE to bit fields is backward-compatible: existing implementations testing Value = 1 or Value = 3 already behave correctly if reinterpreted as bitwise AND tests, so no implementation change is likely required.
TLVs with unknown type or type extension are already specified to be ignored by RFC 6130 and RFC 7181 and are not a reason to reject a message; this document extends that tolerance to unknown TLV values for the TLV types defined in those RFCs.
A received CONT_SEQ_NUM with a single-length less than 2 SHOULD be considered an error.
An implementation MUST NOT reject a message because it contains an unrecognized TLV value. Any unrecognized TLV Value field MUST be processed or ignored by an unextended implementation of NHDP or OLSRv2.
An implementation of RFC 6130 that receives a LOCAL_IF, LINK_STATUS, or OTHER_NEIGHB TLV with any TLV Value other than the values defined in RFC 6130 MUST ignore that TLV Value, as well as any corresponding attribute association to the address.
For the MPR and NBR_ADDR_TYPE bit-field registries, a set bit (1) must mean the address has the designated property, and an unset bit (0) must not be used to convey any specific information about the designated property.
If the received single-length of a TLV Value field is less than the expected single-length, then the absent octets MUST be considered to have all bits cleared (0).
The MPR and NBR_ADDR_TYPE TLV Value fields are converted to bit fields and MUST be interpreted as such; any test of Value = 1 or Value = 3 MUST be converted to a bitwise AND test (e.g., Value bitand 1 = 1).
The LINK_STATUS TLV value field is an enumerated single-octet value with values LOST (0), SYMMETRIC (1), and HEARD (2) describing the state of a link from a neighbor; value 255 (UNSPECIFIED) indicates no information.
The LOCAL_IF TLV value field is an enumerated single-octet value. Values THIS_IF (0) and OTHER_IF (1) identify whether an address belongs to the sending interface or another interface of the same router; value 255 (UNSPECIFIED) indicates no information.
The MPR TLV value field is respecified as a bit field. Bit 7 (0x01) indicates selection as flooding MPR; bit 6 (0x02) indicates selection as routing MPR; bits 0-5 are unassigned.
The NBR_ADDR_TYPE TLV value field is a bit field. Bit 7 (0x01) indicates the address is an ORIGINATOR address; bit 6 (0x02) indicates it is a ROUTABLE address reachable via the originating router; bits 0-5 are unassigned.
The OTHER_NEIGHB TLV value field is an enumerated single-octet value with values LOST (0) and SYMMETRIC (1) describing the neighbor relationship; value 255 (UNSPECIFIED) indicates no information.
IANA created a new sub-registry 'LINK_STATUS TLV Values' within the MANET Parameters registry, with values LOST (0), SYMMETRIC (1), HEARD (2), Unassigned (3-223), Reserved for Experimental Use (224-254), and UNSPECIFIED (255). New assignments by Expert Review.
IANA created a new sub-registry 'LOCAL_IF TLV Values' within the MANET Parameters registry, with values THIS_IF (0), OTHER_IF (1), Unassigned (2-223), Reserved for Experimental Use (224-254), and UNSPECIFIED (255). New assignments by Expert Review.
IANA created a new sub-registry 'MPR TLV Bit Values' within the MANET Parameters registry, with Flooding (bit 7, 0x01), Routing (bit 6, 0x02), and Unassigned bits 0-5. New assignments by Expert Review.
IANA created a new sub-registry 'NBR_ADDR_TYPE Address Block TLV Bit Values' within the MANET Parameters registry, with ORIGINATOR (bit 7, 0x01), ROUTABLE (bit 6, 0x02), and Unassigned bits 0-5. New assignments by Expert Review.
IANA created a new sub-registry 'OTHER_NEIGHB TLV Values' within the MANET Parameters registry, with values LOST (0), SYMMETRIC (1), Unassigned (2-223), Reserved for Experimental Use (224-254), and UNSPECIFIED (255). New assignments by Expert Review.
Reducing the latitude to reject messages with unexpected TLV values does not introduce new security concerns, because the protocols are specified in terms of specific value associations (e.g., 'if associated with LOST by LINK_STATUS TLV'); unknown values have no effect on such logic. Extensions using new TLV values MUST specify appropriate security considerations.