Routing - noxrepo/nox-classic GitHub Wiki

Overview

The routing application keeps track of shortest-path routes between any two authenticated datapaths in the network. Routing interacts with the Topology component in order to maintain routes. On link changes, the set of affected routes is updated.

Routing currently listens for Flow_in_events which are raised by the Authenticator when a Packet_in_event is received from the network, and routes them by setting up exact match flow entries in all switches along the path from the source to destination access points.

Routing operates as follows:

  • It pulls in the authenticator component which tracks MAC addresses and the switch ports they are bound to
  • For each packet in which the destination MAC address has been discovered, a point to point route is calculated and a flow entry is added to each switch along path.
  • If the destination MAC has not been discovered, the packet is flooded
In that sense, the name of the component "Routing" does not refer to standard IP based routing. This has been the source of a lot of confusion and the module should probably be renamed to "forwarding" or something similarly generic. Its operation is simple, "routing" identifies hosts by their MACs and sets up routes per-flow. If routing doesn't know the location of the destination MAC, it floods the packet. The flows themselves are exact match for all OpenFlow fields (and therefore that routing decision should only apply to the packets of that particular flow).
⚠️ **GitHub.com Fallback** ⚠️