Commit d8b99999 authored by Mohamad Rahhal's avatar Mohamad Rahhal
Browse files

Test - Ryu - OpenFlow :

- Added Test Files
parent 763165dc
Loading
Loading
Loading
Loading
+61 −0
Changes for src/tests/OpenFlow-Ryu-NBI-Request/ADD LINKS.json: 61 added lines, 0 removed lines.
Original line number Diff line number Diff line
{
    "links": [
        {    
    "link_id": {"link_uuid": {"uuid": "h1/h1-eth0==0000000000000002/s2-eth3"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "h1"}}, "endpoint_uuid": {"uuid": "h1-eth0"}},
        {"device_id": {"device_uuid": {"uuid": "0000000000000002"}}, "endpoint_uuid": {"uuid": "s2-eth3"}}
    ]
},
{
    "link_id": {"link_uuid": {"uuid": "0000000000000002/s2-eth3==h1/h1-eth0"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "0000000000000002"}}, "endpoint_uuid": {"uuid": "s2-eth3"}},
        {"device_id": {"device_uuid": {"uuid": "h1"}}, "endpoint_uuid": {"uuid": "h1-eth0"}}
            ]
        },
        {    
    "link_id": {"link_uuid": {"uuid": "h2/h2-eth0==0000000000000002/s2-eth4"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "h2"}}, "endpoint_uuid": {"uuid": "h2-eth0"}},
        {"device_id": {"device_uuid": {"uuid": "0000000000000002"}}, "endpoint_uuid": {"uuid": "s2-eth4"}}
    ]
},
{
    "link_id": {"link_uuid": {"uuid": "0000000000000002/s2-eth4==h2/h2-eth0"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "0000000000000002"}}, "endpoint_uuid": {"uuid": "s2-eth4"}},
        {"device_id": {"device_uuid": {"uuid": "h2"}}, "endpoint_uuid": {"uuid": "h2-eth0"}}
            ]
        },
        {    
    "link_id": {"link_uuid": {"uuid": "h3/h3-eth0==0000000000000005/s5-eth3"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "h3"}}, "endpoint_uuid": {"uuid": "h3-eth0"}},
        {"device_id": {"device_uuid": {"uuid": "0000000000000005"}}, "endpoint_uuid": {"uuid": "s5-eth3"}}
    ]
},
{
    "link_id": {"link_uuid": {"uuid": "0000000000000005/s5-eth3==h3/h3-eth0"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "0000000000000005"}}, "endpoint_uuid": {"uuid": "s5-eth3"}},
        {"device_id": {"device_uuid": {"uuid": "h3"}}, "endpoint_uuid": {"uuid": "h3-eth0"}}
            ]
        },
        {    
    "link_id": {"link_uuid": {"uuid": "h4/h4-eth0==0000000000000005/s5-eth4"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "h4"}}, "endpoint_uuid": {"uuid": "h4-eth0"}},
        {"device_id": {"device_uuid": {"uuid": "0000000000000005"}}, "endpoint_uuid": {"uuid": "s5-eth4"}}
    ]
},
{
    "link_id": {"link_uuid": {"uuid": "0000000000000005/s5-eth4==h4/h4-eth0"}},
    "link_endpoint_ids": [
        {"device_id": {"device_uuid": {"uuid": "0000000000000005"}}, "endpoint_uuid": {"uuid": "s5-eth4"}},
        {"device_id": {"device_uuid": {"uuid": "h4"}}, "endpoint_uuid": {"uuid": "h4-eth0"}}
            ]
        }
    ]
}
+71 −0
Changes for src/tests/OpenFlow-Ryu-NBI-Request/OpenFlow.json: 71 added lines, 0 removed lines.
Original line number Diff line number Diff line
{
    "contexts": [
        {"context_id": {"context_uuid": {"uuid": "admin"}}}
    ],
    "topologies": [
        {
            "topology_id": {
                "context_id": {"context_uuid": {"uuid": "admin"}},
                "topology_uuid": {"uuid": "admin"}
            }
        }
    ],
    "devices": [
        {
            "device_id": {"device_uuid": {"uuid": "RYU"}}, "device_type": "openflow-ryu-controller",
            "device_config": {"config_rules": [
                {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.1.7.197"}},
                {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8080"}},
                {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"timeout": 120}}}
            ]},
            "device_drivers": ["DEVICEDRIVER_RYU"]
        },
    {
        "device_id": {"device_uuid": {"uuid": "h1"}}, "device_type": "emu-client", "device_drivers": [0],
        "device_config": {"config_rules": [
            {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}},
            {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}},
            {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [
                {"uuid": "h1-eth0", "type": "copper/internal","mac_address":"00:00:00:00:00:01"},
                {"uuid": "int", "type": "copper/internal"}
            ]}}}
        ]}
    },
    {
        "device_id": {"device_uuid": {"uuid": "h2"}}, "device_type": "emu-client", "device_drivers": [0],
        "device_config": {"config_rules": [
            {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}},
            {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}},
            {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [
                {"uuid": "h2-eth0", "type": "copper/internal"},
                {"uuid": "int", "type": "copper/internal"}
            ]}}}
        ]}
    },
    {
        "device_id": {"device_uuid": {"uuid": "h3"}}, "device_type": "emu-client", "device_drivers": [0],
        "device_config": {"config_rules": [
            {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}},
            {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}},
            {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [
                {"uuid": "h3-eth0", "type": "copper/internal"},
                {"uuid": "int", "type": "copper/internal"}
            ]}}}
        ]}
    },
    {
        "device_id": {"device_uuid": {"uuid": "h4"}}, "device_type": "emu-client", "device_drivers": [0],
        "device_config": {"config_rules": [
            {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}},
            {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}},
            {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [
                {"uuid": "h4-eth0", "type": "copper/internal"},
                {"uuid": "int", "type": "copper/internal"}
            ]}}}
        ]}
    }
    ]
}


+3 −0
Changes for src/tests/OpenFlow-Ryu-NBI-Request/commands.txt: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
sudo mn -c
ryu-manager --observe-links ryu.app.ofctl_rest ryu.app.gui_topology.gui_topology
sudo python3 ~/mininet/custom_pentagon_topology.py
 No newline at end of file
+40 −0
Changes for src/tests/OpenFlow-Ryu-NBI-Request/custom_pentagon_topology.py: 40 added lines, 0 removed lines.
Original line number Diff line number Diff line
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController
from mininet.cli import CLI
from mininet.link import TCLink

class PentagonTopo(Topo):
    def build(self):
        sw1 = self.addSwitch('s1')
        sw2 = self.addSwitch('s2')
        sw3 = self.addSwitch('s3')
        sw4 = self.addSwitch('s4')
        sw5 = self.addSwitch('s5')

        h1 = self.addHost('h1', ip="10.0.0.1", mac="00:00:00:00:00:01")
        h2 = self.addHost('h2', ip="10.0.0.2", mac="00:00:00:00:00:02")
        h3 = self.addHost('h3', ip="10.0.0.3", mac="00:00:00:00:00:03")
        h4 = self.addHost('h4', ip="10.0.0.4", mac="00:00:00:00:00:04")

        self.addLink(sw1, sw2)
        self.addLink(sw2, sw3)
        self.addLink(sw3, sw4)
        self.addLink(sw4, sw5)
        self.addLink(sw5, sw1)

        self.addLink(h1, sw2)
        self.addLink(h2, sw2)
        self.addLink(h3, sw5)
        self.addLink(h4, sw5)

if __name__ == '__main__':
    topo = PentagonTopo()
    net = Mininet(topo=topo, controller=lambda name: RemoteController(name, ip='127.0.0.1'), link=TCLink)
    
    net.start()
    net.staticArp()

    print("Custom Pentagon Topology is up with static ARP.")
    CLI(net)  
    net.stop()