OLSR, Optimized Link State Routing

Description Glossary RFCs Publications Obsolete RFCs


Protocol suite: TCP/IP.
Protocol type:Application layer protocol.
Ports:698 (UDP).
MIME subtype:
Working groups: manet, Mobile Ad-hoc Networks.

RFC 3626:

The protocol is an optimization of the classical link state algorithm tailored to the requirements of a mobile wireless LAN. The key concept used in the protocol is that of multipoint relays (MPRs). MPRs are selected nodes which forward broadcast messages during the flooding process. This technique substantially reduces the message overhead as compared to a classical flooding mechanism, where every node retransmits each message when it receives the first copy of the message. In OLSR, link state information is generated only by nodes elected as MPRs. Thus, a second optimization is achieved by minimizing the number of control messages flooded in the network. As a third optimization, an MPR node may chose to report only links between itself and its MPR selectors. Hence, as contrary to the classic link state algorithm, partial link state information is distributed in the network. This information is then used for route calculation. OLSR provides optimal routes (in terms of number of hops). The protocol is particularly suitable for large and dense networks as the technique of MPRs works well in this context.

OLSR is designed for use in mobile adhoc networks.

MAC header IP header UDP header OLSR header Data :::

OLSR header:

0001020304050607 0809101112131415 1617181920212223 2425262728293031
Packet length Packet sequence number
OLSR message [] :::

Packet length. 16 bits.
Size of the packet in bytes.

Packet sequence number. 16 bits.

OLSR message:

0001020304050607 0809101112131415 1617181920212223 2425262728293031
Message type Vtime Message size
Originator address
TTL Hop count Message sequence number
Data :::

Message type. 8 bits, 0 to 255.

Private or local messages.

Vtime. 8 bits.
Indicates for how long time after reception a node MUST consider the information contained in the message as valid, unless a more recent update to the information is received. The validity time is represented by its mantissa (four highest bits of Vtime field) and by its exponent (four lowest bits of Vtime field). In other words: validity time = C*(1+a/16)* 2^b in seconds where:

a is the integer represented by the four highest bits of the Vtime field.

b is the integer represented by the four lowest bits of Vtime field.

C is the scaling factor.

Message size. 16 bits.
The length of the message header and data in bytes.

Originator address. 32 bits.
Contains the main address of the node which originally generated this message. This field SHOULD NOT be confused with the source address from the IP header, which is changed each time to the address of the intermediate interface which is retransmitting this message. The Originator Address field MUST NEVER be changed in retransmissions.

TTL, time to live. 8 bits, 0 to 255.
Contains the maximum number of hops a message will be transmitted. Before a message is retransmitted, the TTL MUST be decremented by 1. When a node receives a message with a TTL equal to 0 or 1, the message MUST NOT be retransmitted under any circumstances. Normally, a node would not receive a message with a TTL of zero.

Hop count. 8 bits.
Contains the number of hops a message has attained. Before a message is retransmitted, the Hop Count MUST be incremented by 1. Initially, this is cleared to zero by the originator of the message.

Message sequence number. 16 bits.
While generating a message, the originator node will assign a unique identification number to each message. This number is inserted into the Sequence Number field of the message. The sequence number is increased by 1 (one) for each message originating from the node. Message sequence numbers are used to ensure that a given message is not retransmitted more than once by any node.


MPR, Multipoint Relay.
A node which is selected by its 1-hop neighbor, node X, to "re-transmit" all the broadcast messages that it receives from X, provided that the message is not a duplicate, and that the time to live field of the message is greater than one.


[RFC 3626] Optimized Link State Routing Protocol (OLSR).


Obsolete RFCs:

Description Glossary RFCs Publications Obsolete RFCs