Forwarding (Dev)

Description

Forwarding will forward packets between two devices. The source and destination devices will be classified by the IDeviceService.

Services Provided

  • None

Service Dependencies

  • IDeviceService
  • IFloodlightProviderService
  • IRestApiService
  • IRoutingService
  • ITopologyService
  • IDebugCounterService
  • IOFSwitchService

Java File

The module is implemented in net.floodlightcontroller.forwarding.Forwarding.

How it works

Since Floodlight is designed to work in networks that contain both OpenFlow and non-OpenFlow switches Forwarding has to take this into account. The algorithm will find all OpenFlow islands that have device attachment points for both the source and destination devices. FlowMods will then be installed along the shortest path for the flow. If a PacketIn is received on an island and there is no attachment point for the device on that island the packet will be flooded.

Limitations

  • Routing functionality is not currently provided.
  • There is no VLAN encap/decap.

Configuration

The module is enabled by default, no change to the configuration is required to load the module. 

Configuration Options

If you would like to specify the match fields on which Forwarding will use in flows, you can modify the following in src/main/resources/floodlightdefault.properties:

net.floodlightcontroller.forwarding.Forwarding.match=vlan, mac, ip, transport

Forwarding can match on up to the header fields above – VLAN ID, source/destination MAC addresses, source/destination IP addresses, and source/destination transport ports. If the string for the "match" key contains "vlan", "mac", "ip", or "port", the VLAN ID, MAC addresses, IP addresses, and transport ports will be included in the flow matches, respectively. You can include any combination of these keywords to specify the headers you wish to match on.

REST API

None.