# Neighbor Session Solutions for Integrated Routing Protocols
## 3 Aspects Important for Supporting Multiple Network Protocols
As a result of our analysis, the following services are identified, some of which are common to all classes mentioned above, and some of which differ between classes:  
* Address of neighbors;
* Routing protocol message fragmentation;
* Message format consisting of modular structures;
* Reliable transmission of messages;
* Assigning a network address to an interface;
* Protocol identifier (EtherType, Protocol ID);
* Discovery of network protocols supported by neighbors;
* Transmission of the address of the next router (next hop address). Addressing is a basic service essential for all classes of routing protocols. The neighbor addressing used affects the management of adjacencies between routers, as well as the identification of a particular neighbor in the working databases of the routing protocol. One way to ensure neighbor identification, independent of the identified PISC, is a special field in the routing protocol header dedicated to this purpose. It is also possible to use the interface address (line and network) as an addressing element, but it depends on the type of network and the specific integration class. In the case of PISC 1 and 2 (using L2 transport) and multiaccess networks such as Ethernet, only a link-layer address can be used. However, if it is a point-to-point network, L2 addresses are not available, which leads to the use of other identifiers, such as the interface name. In the case of PISC 3 and 4 (using L3 transport), in the case of multiaccess networks and point-to-point, a network address can be used to identify a neighbor. Another important service we identify, which needs to be addressed during transmission, is routing protocol message fragmentation in the case of an MTU that is smaller than the volume of the transmitted routing information needed to be delivered to a neighbor. A routing protocol must handle fragmentation in its own way, independently of the class identified above. As Section 2 shows, routing protocols designed with an emphasis on network protocol independence and easy extensibility could add IPv6 support without a complete redesign. Therefore, one of the essential functions of the transport (in this case, it is not necessary to distinguish between the adjacency management messages and the messages of the transmission of the routing information itself) is the use of TLVs, or other modular structures that guarantee the ease of extending the routing protocol with new functions in the future, such as the support of new network protocols or the introduction of new functionalities. Each routing protocol that establishes neighbor sessions must have the reliable transmission of routing protocol messages. In the case of creating a neighborship for each network protocol separately, the transport protocol must additionally consider multiple sessions and be able to assign a received packet to a specific session. Another essential service is the ability to assign a network address to an interface. In the case of transport on the link layer, after activating the routing protocol on the interface, it is necessary to find out which network protocols are supported on a particular interface. Subsequently, it is necessary to create a different number of adjacencies, which depends on the given protocol. A similar situation occurs in the case of PISC 4 (L3 transport, one neighborship), where it is also necessary to find out the supported address families. Subsequently, the router must send the corresponding routing information to the neighbor since there may be other network protocols available on the interface, such as the adjacency created. In the case of class 3, this service is not needed since a neighborship is created for each network protocol, which also has a separate transport. For transport on the link layer, it is necessary to consider, in the case of Ethernet, the assignment of the EtherType identifier, which is different for each protocol. Analogously, the Protocol ID identifier is required for transport on the network layer.