Open Kilda Java Documentation
kilda.mininet.rest Namespace Reference

Classes

class  KildaSwitch
 

Functions

def log_to_logger (fn)
 
def required_parameters (pars)
 
def controller_info (controller)
 
def list_controllers ()
 
def switch_info (switch)
 
def list_switch (name)
 
def list_switches ()
 
def link_name (link)
 
def link_info (link)
 
def list_links ()
 
def new_topology ()
 
def create_topology ()
 
def get_switch (name)
 
def get_switches ()
 
def create_switches ()
 
def get_links ()
 
def create_links ()
 
def get_controllers ()
 
def create_controller ()
 
def mininet_cleanup ()
 
def status ()
 
def start_server (interface, port)
 
def get_output_actions (in_vlan, out_vlan)
 Flow Debugging Section. More...
 
def add_single_switch_rules (switch_id, in_port, out_port, in_vlan=0, out_vlan=0)
 
def clear_single_switch_rules (switch_id, in_port, out_port)
 
def pingable (host1, host2)
 
def check_ping_traffic (p)
 
def add_default_flows (p)
 
def add_ingress_flow (p)
 
def add_egress_flow (p)
 
def add_transit_flow (p)
 
def init ()
 
def main ()
 

Variables

 net = None
 GLOBALS. More...
 
dictionary topology_schema
 
dictionary switches_schema
 
dictionary links_schema
 
dictionary controllers_schema
 

Function Documentation

◆ add_default_flows()

def kilda.mininet.rest.add_default_flows (   p)

Definition at line 752 of file rest.py.

◆ add_egress_flow()

def kilda.mininet.rest.add_egress_flow (   p)

Definition at line 778 of file rest.py.

◆ add_ingress_flow()

def kilda.mininet.rest.add_ingress_flow (   p)

Definition at line 763 of file rest.py.

◆ add_single_switch_rules()

def kilda.mininet.rest.add_single_switch_rules (   switch_id,
  in_port,
  out_port,
  in_vlan = 0,
  out_vlan = 0 
)
add reciprocal rules to a switch to emulate kilda rules

Definition at line 635 of file rest.py.

◆ add_transit_flow()

def kilda.mininet.rest.add_transit_flow (   p)

Definition at line 793 of file rest.py.

◆ check_ping_traffic()

def kilda.mininet.rest.check_ping_traffic (   p)
Algorithm:
    1) add host/switch ingress/egress rules on Src and Dst
    2) do the ping
    3) remove host/switch ingress/egress rules on Src and Dst

Definition at line 694 of file rest.py.

◆ clear_single_switch_rules()

def kilda.mininet.rest.clear_single_switch_rules (   switch_id,
  in_port,
  out_port 
)
remove rules from switch 3 to emulate kilda clear rules

Definition at line 664 of file rest.py.

◆ controller_info()

def kilda.mininet.rest.controller_info (   controller)

Definition at line 263 of file rest.py.

◆ create_controller()

def kilda.mininet.rest.create_controller ( )

Definition at line 573 of file rest.py.

◆ create_links()

def kilda.mininet.rest.create_links ( )

Definition at line 559 of file rest.py.

◆ create_switches()

def kilda.mininet.rest.create_switches ( )

Definition at line 545 of file rest.py.

◆ create_topology()

def kilda.mininet.rest.create_topology ( )

Definition at line 374 of file rest.py.

◆ get_controllers()

def kilda.mininet.rest.get_controllers ( )

Definition at line 567 of file rest.py.

◆ get_links()

def kilda.mininet.rest.get_links ( )

Definition at line 553 of file rest.py.

◆ get_output_actions()

def kilda.mininet.rest.get_output_actions (   in_vlan,
  out_vlan 
)

Flow Debugging Section.

  • these endpoints give the ability to create rules directly, without kilda
  • this ability allows the developer to test flows directly (useful for development scenarios)
    This is to setup rules for host to switch / switch to host.
    It honors what we are trying to accomlish with testing Kilda:
        1) Kilda will put rules on one or more switches
        2) This code will put rules on the switches outside that set. For instance, if we are
            testing Kilda in a single switch scenario (s3), then this code will be used
            to put rules on s2 and s4 so that s3 can be tested properly.
        3) To keep things simple, we leverage the host attached to s2 and s4 to do a ping
        4) These rules setup the host to switch port as in, and then the switch to be tested as the
            out port.
    

Definition at line 611 of file rest.py.

◆ get_switch()

def kilda.mininet.rest.get_switch (   name)

Definition at line 533 of file rest.py.

◆ get_switches()

def kilda.mininet.rest.get_switches ( )

Definition at line 539 of file rest.py.

◆ init()

def kilda.mininet.rest.init ( )
Get the global variables defined and initialized

Definition at line 806 of file rest.py.

◆ link_info()

def kilda.mininet.rest.link_info (   link)

Definition at line 302 of file rest.py.

◆ link_name()

def kilda.mininet.rest.link_name (   link)

Definition at line 295 of file rest.py.

◆ list_controllers()

def kilda.mininet.rest.list_controllers ( )

Definition at line 269 of file rest.py.

◆ list_links()

def kilda.mininet.rest.list_links ( )

Definition at line 306 of file rest.py.

◆ list_switch()

def kilda.mininet.rest.list_switch (   name)

Definition at line 287 of file rest.py.

◆ list_switches()

def kilda.mininet.rest.list_switches ( )

Definition at line 291 of file rest.py.

◆ log_to_logger()

def kilda.mininet.rest.log_to_logger (   fn)
Wrap a Bottle request so that a log line is emitted after it's handled.
(This decorator can be extended to take the desired logger as a param.)

Definition at line 74 of file rest.py.

◆ main()

def kilda.mininet.rest.main ( )

Definition at line 816 of file rest.py.

◆ mininet_cleanup()

def kilda.mininet.rest.mininet_cleanup ( )

Definition at line 581 of file rest.py.

◆ new_topology()

def kilda.mininet.rest.new_topology ( )

Definition at line 311 of file rest.py.

◆ pingable()

def kilda.mininet.rest.pingable (   host1,
  host2 
)

Definition at line 680 of file rest.py.

◆ required_parameters()

def kilda.mininet.rest.required_parameters (   pars)

Definition at line 90 of file rest.py.

◆ start_server()

def kilda.mininet.rest.start_server (   interface,
  port 
)

Definition at line 597 of file rest.py.

◆ status()

def kilda.mininet.rest.status ( )

Definition at line 593 of file rest.py.

◆ switch_info()

def kilda.mininet.rest.switch_info (   switch)

Definition at line 273 of file rest.py.

Variable Documentation

◆ controllers_schema

dictionary kilda.mininet.rest.controllers_schema

Definition at line 230 of file rest.py.

◆ links_schema

dictionary kilda.mininet.rest.links_schema
Initial value:
1 = {
2  "$schema": "http://json-schema.org/draft-04/schema#",
3  "type": "object",
4  "properties": {
5  "links": {
6  "type": "array",
7  "items": {
8  "type": "object",
9  "properties": {
10  "node1": {
11  "type": "string"
12  },
13  "node2": {
14  "type": "string"
15  }
16  },
17  "required": [
18  "node1",
19  "node2"
20  ]
21  }
22  }
23  },
24  "required": [
25  "links"
26  ]
27 }

Definition at line 202 of file rest.py.

◆ net

kilda.mininet.rest.net = None

GLOBALS.

Definition at line 41 of file rest.py.

◆ switches_schema

dictionary kilda.mininet.rest.switches_schema
Initial value:
1 = {
2  "$schema": "http://json-schema.org/draft-04/schema#",
3  "type": "object",
4  "properties": {
5  "switches": {
6  "type": "array",
7  "items": {
8  "type": "object",
9  "properties": {
10  "name": {
11  "type": "string"
12  },
13  "dpid": {
14  "type": "string"
15  }
16  },
17  "required": [
18  "name",
19  "dpid"
20  ]
21  }
22  }
23  },
24  "required": [
25  "switches"
26  ]
27 }

Definition at line 174 of file rest.py.

◆ topology_schema

dictionary kilda.mininet.rest.topology_schema

Definition at line 104 of file rest.py.