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, transportForwarding 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.