Skip to content

OpenFlow on 4112F-ON

See here for a listing of files and source code.

Open Flow Switch Specification v1.3.1

Dell OpenFlow Deployment and User Guide 3.0

OS10 Setup Instructions

  • Controller is running on Windows in PyCharm while I’m testing. I’ll move it to RHEL when I’m done.
  • I am using a S4112F-ON
  • I am using a Ryu OpenFlow controller
Dell EMC Networking OS10 Enterprise
Copyright (c) 1999-2020 by Dell Inc. All Rights Reserved.
OS Version: 10.5.1.0
Build Version: 10.5.1.0.124
Build Time: 2020-02-12T09:05:20+0000
System Type: S4112F-ON
Architecture: x86_64
Up Time: 00:03:52
pip install -r requirements.txt

** Make sure you use sudo or things will go wrong **

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g @angular/cli
sudo ng add @angular/material

You can drop the -g if you want to install angular locally in the directory instead of globally. You will have to prefix your commands with npx -p @angular/cli ng

To setup debugging do the following:

  1. Go to https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome and install the addon for Visual Studio Code

  2. Go to the debugging tab in Visual Studio code, hit the down arrow next to launch program and click launch Chrome.

  3. I used the following configuration:

    {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    {
    "type": "chrome",
    "request": "launch",
    "name": "Launch Chrome against localhost",
    "url": "http://localhost:4200",
    "webRoot": "c:\\Users\\grant\\Documents\\trafficshaper\\angular"
    }
    ]
    }

On the switch run:

OS10# configure terminal
OS10(config)# openflow
OS10(config-openflow)# mode openflow-only
Configurations not relevant to openflow mode will be removed from the startup-configuration and system will be rebooted. Do you want to proceed? [confirm yes/no]:yes
OS10(conf-if-ma-1/1/1)# interface mgmt 1/1/1
OS10(conf-if-ma-1/1/1)# ip address <SOME MANAGEMENT IP>/24
OS10(conf-if-ma-1/1/1)# no shutdown
OS10(conf-if-ma-1/1/1)# exit
OS10# configure terminal
OS10(config)# openflow
OS10(config-openflow)# switch of-switch-1
OS10(config-openflow-switch)# controller ipv4 <YOUR_CONTROLLER_IP> port 6633
OS10(config-openflow-switch)# protocol-version 1.3
OS10(config-openflow-switch)# no shutdown

python main.py

  • TCP
  • UDP
  • ICMP

HTTP TLS DNS SSH

  • Inline decryption possibilities
  • I want to tie a sensor directly to a DC. So all things for that DC go to one sensor

A couple of dropdown boxes in a statement and an execute button. One of those things could be an IP address, or a port, or a protocol, physical port

need to make sure we don’t receive a reject message need to make it so outports and inports persist if something is an input port do we want to stop them from using redirect port I need to go back and make sure that when compressed tiles move to the next line I need to handle getting flows for the openflow controller’s interface Need to add error handling if the server is unavailable Need to update the getPorts documentation