Examples of embodiments of the present invention will now be described with reference to the drawings in which:
Referring to
The network element 301 further includes a controller 307 for controlling communications from the network element associated with neighbor discovery, and in accordance with the status associated with each neighbor network element indicated in the neighbor cache.
When information about a neighbor for which no entry exists in the neighbor cache is to be discovered, the network element transmits a status request, for example, a multicast neighbor solicitation message, an entry for the neighbor is created in the neighbor cache, and an “incomplete” state is assigned to the new entry while the network element awaits a response from the neighbor, including its link-layer address. Multicast neighbor solicitation messages may be repeatedly sent a predetermined number of times, following which the address resolution process is abandoned.
On receiving a status report, for example, a unicast neighbor advertisement message from the neighbor, the entry status in the neighbor cache associated with the neighbor changes to the “reachable” state, and the entry status remains in this state for a period of time. In one implementation, as shown in
If the neighbor responds by sending a status report confirming that it is still reachable, the entry status for the neighbor in the neighbor cache changes from “advanced probe” to the “reachable” state as indicated by the arrow 411 in
On changing to the reachable state, the timer is set to the reachable time value and starts recording the elapsed time from when the last reachability confirmation was received. If the reachable time expires, the entry status again transitions from the reachable state to the advanced probe state, and a new status request is transmitted to the neighbor, and if reachability is confirmed, the cycle is repeated.
If during an “advanced probe” state, no message confirming reachability of the neighbor is received, the entry is deleted from the neighbor cache 305 so that the status transitions from the “advanced probe” state 407 to the “no entry exists” state 401 as indicated by arrow 413.
In this arrangement, each time the “reachable” state expires, the entry status changes directly to an “advanced probe” state which causes the network element to transmit a new status request addressed to the neighbor. Thus, each time the reachable state expires, the network element seeks confirmation from the neighbor that the neighbor is still reachable. In contrast to existing software solutions, this arrangement removes the need for capturing packets from the fast data path in the “stale” state, when the reachable state expires, so that data can continuously flow on the fast path without risk of packet reordering or packet loss resulting from a transition to the “stale” state.
Referring again to
If, after the wait time at step 509, no response is received, the neighbor solicitation message is resent and a response awaited a further number of times until the number of neighbor solicitation messages reaches a set value, x, (which may have any value), and if no response is received after the last neighbor solicitation message is sent, the process passes to step 515 in which the destination to which the neighbor solicitation message is sent is determined as unreachable.
If at step 509, another message is received from the neighbor, the process passes to step 519, in which the entry changes from the “incomplete” state to the “stale” state and then any buffered data packets can be sent to the neighbor, as indicated at step 535.
Returning to step 511, when the entry is in the “reachable” state, any buffered data packets can be sent. The entry remains in the reachable state for the predetermined reachable time, as indicated by step 523, and once the time has expired, the process passes to step 525 where a decision is made as to whether the state of the entry should proceed to the “advanced probe” state at step, 527 or proceed to the “stale” state at step 519. If the “advanced probe” state is selected, a neighbor solicitation message is sent to the neighbor at step 529. The process waits for a response to the neighbor solicitation at step 531, and if a solicited neighbor advertisement is received, the state of the entry changes from “advanced probe” to “reachable” at step 511. On the other hand, if no solicited neighbor advertisement is received, nor any other indication that the neighbor is reachable, the neighbor solicitation message may be resent and a response awaited a certain number of times as indicated by step 533, where “y” can have any value. If, after the last attempt, no response is received, the entry is deleted and the process passes to the “No Entry Exists” state as indicated at step 501.
If instead of receiving a solicited neighbor advertisement in response to the neighbor solicitation, it is determined by other means (e.g. another message from the neighbor) that the neighbor is reachable, the entry changes from the “advanced probe” state to the “stale” state at step 519, the network element is enabled to send buffered data packets, if any, as indicated by step 535, and the state changes to “delay” at step 537.
In addition to the two routes to the “stale” state described above, the entry may also enter the “stale” state if, during the reachable state, the network element receives a notification from the neighbor that its link layer address has changed, or if a decision is made at step 525 that the “advanced probe” feature is not to be used. Once in the “stale” state (as reached through any of the routes described above, for example), the entry remains in the “stale” state until data is sent to the neighbor, as indicated by step 535. When data is sent, the entry then changes from the “stale” state to the “delay” state (for example by the mechanism described above where packets are sent to the slow path) and the entry remains in this state for a predetermined length of time as indicated at step 539, to provide an opportunity to determine whether the neighbor is reachable by any available means other than sending a neighbor solicitation message. If reachability is confirmed in the “delay” state, the entry changes to the “reachable” state 511. Otherwise, after the delay time, the state of the entry changes to the “probe” state at step 541, where the network element sends a neighbor solicitation message at step 543. The process then waits, at step 545, for a response to the neighbor solicitation message, and if a solicited neighbor advertisement is received, the state of the entry changes from “probe” to “reachable” at step 511. If no response is received within a predetermined wait time, the neighbor solicitation message may be resent a predetermined number of times, z, (which may have any value), after which if no response is received, the entry is deleted and the process passes to the “No Entry Exists” state 501. On the other hand, if during the wait time 545, it is determined that the neighbor is reachable by some means other than a solicited neighbor advertisement, the process proceeds to step 519, in which the state of the entry is changed to “stale” and then any buffered data packets can be sent at step 535.
The embodiment of
In other embodiments, the apparatus and method may be implemented to transmit a status request in the “reachable state”. In this case the “advanced probe” state is effectively included in or combined with the “reachable” state, so that a separate “advanced probe” state is unnecessary and can be omitted. For example, the “advanced probe” state of the embodiments of
Although some of the embodiments described above are concerned with monitoring the reachability status of a neighbor, other embodiments may alternatively, or in addition be implemented to monitor the status of one or more other attributes of a neighbor or other network resource.
Other aspects and embodiments of the present invention comprise any one or more features disclosed herein in combination with any one or more other features disclosed herein, an equivalent or variant thereof. In any aspects or embodiments of the present invention, any one or more features disclosed herein may be omitted altogether or substituted by an equivalent or variant thereof.
Numerous modifications and changes to the embodiments described above will be apparent to those skilled in the art.