Abstract:
A method of supporting a unidirectional link from a first router to a second router, the first and second routers existing in an area of a communication network, the method comprising: the second router receiving a hello packet from the first router; the second router determining that its topology information for the communication network is incomplete; the second router encapsulating an open shortest path first (OSPF) packet into an Opaque link state advertisement (LSA); and the second router flooding the Opaque LSA over the area.

Description:
FIELD 
   The present invention relates broadly to communication networks utilizing routers. Specifically, the present invention relates to utilizing packet flooding to compensate for failed links within the communication network. 
   BACKGROUND 
   Open Shortest Path First (OSPF) is a routing protocol developed for Internet Protocol (IP) networks. OSPF is a link-state routing protocol that calls for the sending of link-state advertisements (LSAs) to all other routers within the same hierarchical area. Information on attached interfaces, metrics used, and other variables, is included in OSPF LSAs. As OSPF routers accumulate link-state information, they use algorithms that calculate the shortest path to various routers (network nodes). The largest entity within the hierarchy is an autonomous system (AS), which is a collection of networks under a common administration that share a common routing strategy. OSPF is an intra-AS (interior gateway) routing protocol, although it is capable of receiving routes from and sending routes to other ASs. An AS can be divided into a number of areas—groups of contiguous networks and attached hosts. Routers with multiple interfaces can participate in multiple areas. These routers, which are called Area Border Routers, maintain separate topological databases for each area. A topological database is essentially an overall picture of networks in relationship to routers. The topological database contains the collection of LSAs received from all routers in the same area. Because routers within the same area share the same information, they have identical topological databases. 
   The Shortest Path First (SPF) routing algorithm is the basis for OSPF operations. When a router using the SPF algorithm is powered up, it initializes its routing-protocol data structures and then waits for indications from lower-layer protocols that its interfaces are functional. After a router is assured that its interfaces are functioning, it uses the OSPF Hello protocol to acquire neighbors, which are routers with interfaces to a common network. The router sends hello packets to its neighbors and receives their hello packets. In addition to helping acquire neighbors, hello packets also act as “keepalives,” messages that let routers know that other routers are still functional. On multi-access networks (networks supporting more than two routers), the Hello protocol elects a designated router and a backup designated router. Among other things, the designated router is responsible for generating LSAs for the entire multi-access network. Designated routers allow a reduction in network traffic and in the size of the topological database. 
   When the topological databases of two neighboring routers are synchronized, the routers are said to be adjacent or collectively form an adjacency. Adjacencies control the distribution of routing-protocol packets, which are sent and received only on adjacencies. Each router periodically sends its LSAs to provide information on a router&#39;s adjacencies or to inform others when a router&#39;s state changes. By comparing established adjacencies to link states, failed routers can be detected quickly, and the network&#39;s topology can be altered appropriately. From the topological database generated from LSAs, each router calculates a shortest-path tree (SPT), with itself as root. The SPT, in turn, yields a routing table. 
   There are network deployments where a communication link between routers can be only unidirectional (UD) and there is a requirement for routing protocols to forward traffic over it. Routing protocols such as OSPF and ISIS can be extended in order to run directly over UD links. 
   One of the assumptions for support of a UD link from point A to point B is that there is an alternative path from B to A so that a control packet could follow the alternative path. If the alternative path is bidirectional then the flooding over UD link is unnecessary as the alternative path assures the flooding between A and B. However, this assumption may not always be true or upon link failure the topology could consist of an alternative path that contains unidirectional links. What is needed is a mechanism to be able to flood updates over UD links. 
   Opaque LSAs belong to a class of link-state advertisement used as a generalized mechanism to enable OSPF extensions. Opaque LSAs include typically an LSA header followed by a 32-bit aligned application-specific information field. Like other LSAs, an opaque LSA uses a LS-database distribution mechanism that allows and defines flooding information throughout the domain. 
   SUMMARY 
   As referred to herein, a send-only interface of a unidirectional link is an interface that can only transmit and not receive. A receive-only interface of a unidirectional link is an interface that can only receive. Since topology information during the bootstrap cannot be relied upon to route packet from a receive-only interface to a send-only interface as there may be no bidirectional alternative path, flooding is used to deliver the control packet from the receive-only interface to the send-only interface. The present invention utilizes a special opaque LSA with area scope flooding as a container in order to deliver OSPF control packet from the receive-only interface to the send-only interface. Embodiments of the present invention use flooding (if there is no topology information) to deliver the routing protocol packets. This is performed by encapsulating an OSPF control packet into an Opaque LSA and flooding the Opaque LSA through the whole area. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  illustrates a network of routers in accordance with the present invention; 
       FIG. 2  illustrates in block diagram form the major components of a router in accordance with the present invention; 
       FIG. 3A  illustrates in flowchart form acts that are performed in accordance with the present invention on a first server in communication with a second server; 
       FIG. 3B  illustrates in flowchart form acts that are performed in accordance with the present invention on a second server in communication with the server executing the acts in  FIG. 3A . 
       FIG. 4  illustrates in block diagram form the organization of an opaque LSA used in accordance with the present invention. 
   

   DETAILED DESCRIPTION 
   Directing attention to  FIG. 1 , there is shown an exemplary network of routers in accordance with the present invention. Routers R 1 -R 4  function to pass traffic in the form of packetized data between points  100 ,  200 . Points  100 ,  200  can be individual, end user computer systems, local area networks, wider area networks, and may even be separate computer networks containing additional routers, but in each case data packets are sent through at least some of the routers R 1 -R 4  between points  100 ,  200 . While  FIG. 1  illustrates a network having a specific number of routers R 1 -R 4 , it is to be understood that various configurations of routers can be implemented in accordance with the present invention. Such variations include the number of routers included, as well as the communication medium employed between the routers. Routers R 1 -R 4  can communicate with each other over wireless media as well as wired media, as can points  100 ,  200 . 
     FIG. 2  illustrates an exemplary embodiment of at least one of routers R 1 -R 4  that incorporate the functionality of  FIG. 3 . Router  202  includes communication connection  210 , processor  212 , memory  214 , link state database  216 , and shortest path data structure  218 . Other components, commonly found in routers known to those skilled in the art, are included in router  202 , but are not illustrated. 
   The present invention utilizes a special opaque LSA with area scope flooding as a container in order to deliver OSPF control packet from the receive-only interface to the send-only interface. Embodiments of the present invention use flooding (if there is no topology information) to deliver the routing protocol packets. This is done by encapsulating an OSPF control packet into an Opaque LSA that is flooded in the whole area. While the present invention is implemented in OSPF for a more generalized and flexible unidirectional link support, because the preferred embodiment implements the functionality of the present invention through software, the present invention can be implemented on a wide variety of platforms which can support a unidirectional link. 
   The present invention removes the restrictions in supporting unidirectional links such that the return path isn&#39;t required to be bidirectional. Thus, the present invention allows for more flexible usage of unidirectional links in a network deployment. 
   To better explain the present invention, assume that links R 1 -&gt;R 2  and R 2 -&gt;R 4  are UD links and there is a link failure between router R 2  and router R 3 . There is an alternative bidirectional path from router R 2  to router R 1 , namely R 2 -&gt;R 3 -&gt;R 4 -&gt;R 1 . There is also an alternative path from router R 4  to router R 2 , namely R 4 -&gt;R 3 -&gt;R 2 . Given failed link R 2 -&gt;R 3 , the alternative bidirectional path R 2 -&gt;R 1  as well as R 4 -&gt;R 2  is broken. Therefore, there is a need to flood over unidirectional links as otherwise only a subset of topologies could be supported for a unidirectional link. In order to send OSPF control packets over alternative paths, a route to a remote neighbor&#39;s IP address should be available in order to forward correctly the packet to the remote node. However, such a path might not be available. Considering the same topology where link R 2 -&gt;R 3  failed, in order to flood over link R 2 -R 1 , a path from router R 2  to router R 1  needs to be available. However, as there is no bidirectional path from router R 2  to router R 1 , there is no route to the remote neighbor IP address. Adjacencies are necessary for flooding, and to establish adjacencies, topology information is required. 
   Directing attention to  FIGS. 3A and 3B , operations are executed by routers R 1  and R 2 , respectively. These operations can be stored as software commands routers R 1 , R 2 , or can be implemented on routers R 1 , R 2  through circuitry. While the acts executed in  FIGS. 3A and 3B  appear sequential as illustrated, it is to be understood that the individual acts shown in  FIG. 3A  do not have to execute immediately upon completion of a proceeding act; thus delays between acts can be affected by the timing of execution of the acts illustrated in  FIG. 3B . Likewise, delays within the sequence of acts shown in  FIG. 3B  can occur until one or more acts are completed as shown in  FIG. 3A . At act  300 , Router R 1  sends a Hello packet to router R 2  over a unidirectional link existing between router R 1  and router R 2 . Upon reception of the Hello packet (act  302 ), if router R 2  has a complete topology information (decision step  304 ), as is the case where there is an alternative bidirectional path from router R 2  to router R 1 , then router R 2  has a route to router R 1  and sends a unicast packet to router R 1  (act  306 ). Otherwise router R 2  encapsulates the Hello within an area scope Opaque LSA and floods it (act  308 ). Note that router R 2  does not have yet any adjacency and simply flood this LSA out of its unidirectional link. This LSA is the only LSA that will be flooded over the unidirectional link (during the bootstrap) without having an adjacency. No acknowledgement or indication is required over the unidirectional link for this special opaque LSA. Once the Opaque LSA reaches router R 1  (act  310 ), router R 1  processes the Hello packet within the Opaque LSA and goes into Init (act  312 ). Router R 1  sends a Hello to router R 2  over the UD link from router R 1  to router R 2 , including router R 2 &#39;s router ID (act  314 ). Upon reception of router R 1 &#39;s Hello (act  316 ), router R 2  goes into 2WAY (act  318 ) and sends a Hello including router R 1 &#39;s Router ID via the same Opaque LSA flooding (act  320 ). Once router R 1  gets the packet and goes to 2WAY normal DD exchange take place (act  322 ). Normal OSPF packet exchanges occur between router R 1  and router R 2  until they become fully adjacent (acts  324 ). Note that router R 1  control packets are sent directly via a unidirectional link and router R 2 &#39;s control packets follow a flooding path. 
   Executing concurrently, and, in the preferred embodiment, unsynchronized with respect to router pair (R 1  R 2 ) as applied to router pair ( 3  and  4 ), acts  300 - 324  described above also are used by routers to manipulate the unidirectional link from router R 2  to router R 4 . The explanation above for acts  300 - 324  applies herein, with R 2  substituted in the reference text for R 1  and R 4  substituted for R 2 . 
   Acts  300 - 324  described above are executed between router R 2  and router R 4  concurrently or nearly concurrently, and, in the preferred embodiment, execution of acts  300 - 324  between router pair R 1 ,R 2  are not synchronized with the execution of acts  300 - 324  between router pair R 2 ,R 4 . By executing acts  300 - 324 , routers R 2 , R 4  manipulate the unidirectional link from router R 2  to router R 4 . The explanation above for acts  300 - 324  applies herein, with R 2  substituted in the reference text for R 1  and R 4  substituted for R 2 . 
     FIG. 4  illustrates organization of a portion of an exemplary opaque LSA that is used for flooding in the preferred embodiment of the present invention. Typically, opaque LSA  400  is a UCP-LSA defined as an area-scope opaque LSA with LSA type  10  and includes link state age  402 , options information  404 , and link state type information  406 . Opaque type  408  in the LSA header is TBD and Opaque ID  410  is set to zero. Body  412  of opaque LSA  400  carries the OSPF control packets. 
   While preferred embodiments of the present invention have been described and illustrated in detail, it is to be understood that many modifications can be made to embodiments of the present invention without departing from the spirit thereof.