# -*- Mode: Python -*- # vim: filetype=python ## # = Rocker switch device ## ## # @RockerSwitch: # # Rocker switch information. # # @name: switch name # # @id: switch ID # # @ports: number of front-panel ports # # Since: 2.4 ## { 'struct': 'RockerSwitch', 'data': { 'name': 'str', 'id': 'uint64', 'ports': 'uint32' } } ## # @query-rocker: # # Return rocker switch information. # # Returns: @Rocker information # # Since: 2.4 # # Example: # # -> { "execute": "query-rocker", "arguments": { "name": "sw1" } } # <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}} # ## { 'command': 'query-rocker', 'data': { 'name': 'str' }, 'returns': 'RockerSwitch' } ## # @RockerPortDuplex: # # An eumeration of port duplex states. # # @half: half duplex # # @full: full duplex # # Since: 2.4 ## { 'enum': 'RockerPortDuplex', 'data': [ 'half', 'full' ] } ## # @RockerPortAutoneg: # # An eumeration of port autoneg states. # # @off: autoneg is off # # @on: autoneg is on # # Since: 2.4 ## { 'enum': 'RockerPortAutoneg', 'data': [ 'off', 'on' ] } ## # @RockerPort: # # Rocker switch port information. # # @name: port name # # @enabled: port is enabled for I/O # # @link-up: physical link is UP on port # # @speed: port link speed in Mbps # # @duplex: port link duplex # # @autoneg: port link autoneg # # Since: 2.4 ## { 'struct': 'RockerPort', 'data': { 'name': 'str', 'enabled': 'bool', 'link-up': 'bool', 'speed': 'uint32', 'duplex': 'RockerPortDuplex', 'autoneg': 'RockerPortAutoneg' } } ## # @query-rocker-ports: # # Return rocker switch port information. # # Returns: a list of @RockerPort information # # Since: 2.4 # # Example: # # -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } } # <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1", # "autoneg": "off", "link-up": true, "speed": 10000}, # {"duplex": "full", "enabled": true, "name": "sw1.2", # "autoneg": "off", "link-up": true, "speed": 10000} # ]} # ## { 'command': 'query-rocker-ports', 'data': { 'name': 'str' }, 'returns': ['RockerPort'] } ## # @RockerOfDpaFlowKey: # # Rocker switch OF-DPA flow key # # @priority: key priority, 0 being lowest priority # # @tbl-id: flow table ID # # @in-pport: physical input port # # @tunnel-id: tunnel ID # # @vlan-id: VLAN ID # # @eth-type: Ethernet header type # # @eth-src: Ethernet header source MAC address # # @eth-dst: Ethernet header destination MAC address # # @ip-proto: IP Header protocol field # # @ip-tos: IP header TOS field # # @ip-dst: IP header destination address # # Note: optional members may or may not appear in the flow key # depending if they're relevant to the flow key. # # Since: 2.4 ## { 'struct': 'RockerOfDpaFlowKey', 'data' : { 'priority': 'uint32', 'tbl-id': 'uint32', '*in-pport': 'uint32', '*tunnel-id': 'uint32', '*vlan-id': 'uint16', '*eth-type': 'uint16', '*eth-src': 'str', '*eth-dst': 'str', '*ip-proto': 'uint8', '*ip-tos': 'uint8', '*ip-dst': 'str' } } ## # @RockerOfDpaFlowMask: # # Rocker switch OF-DPA flow mask # # @in-pport: physical input port # # @tunnel-id: tunnel ID # # @vlan-id: VLAN ID # # @eth-src: Ethernet header source MAC address # # @eth-dst: Ethernet header destination MAC address # # @ip-proto: IP Header protocol field # # @ip-tos: IP header TOS field # # Note: optional members may or may not appear in the flow mask # depending if they're relevant to the flow mask. # # Since: 2.4 ## { 'struct': 'RockerOfDpaFlowMask', 'data' : { '*in-pport': 'uint32', '*tunnel-id': 'uint32', '*vlan-id': 'uint16', '*eth-src': 'str', '*eth-dst': 'str', '*ip-proto': 'uint8', '*ip-tos': 'uint8' } } ## # @RockerOfDpaFlowAction: # # Rocker switch OF-DPA flow action # # @goto-tbl: next table ID # # @group-id: group ID # # @tunnel-lport: tunnel logical port ID # # @vlan-id: VLAN ID # # @new-vlan-id: new VLAN ID # # @out-pport: physical output port # # Note: optional members may or may not appear in the flow action # depending if they're relevant to the flow action. # # Since: 2.4 ## { 'struct': 'RockerOfDpaFlowAction', 'data' : { '*goto-tbl': 'uint32', '*group-id': 'uint32', '*tunnel-lport': 'uint32', '*vlan-id': 'uint16', '*new-vlan-id': 'uint16', '*out-pport': 'uint32' } } ## # @RockerOfDpaFlow: # # Rocker switch OF-DPA flow # # @cookie: flow unique cookie ID # # @hits: count of matches (hits) on flow # # @key: flow key # # @mask: flow mask # # @action: flow action # # Since: 2.4 ## { 'struct': 'RockerOfDpaFlow', 'data': { 'cookie': 'uint64', 'hits': 'uint64', 'key': 'RockerOfDpaFlowKey', 'mask': 'RockerOfDpaFlowMask', 'action': 'RockerOfDpaFlowAction' } } ## # @query-rocker-of-dpa-flows: # # Return rocker OF-DPA flow information. # # @name: switch name # # @tbl-id: flow table ID. If tbl-id is not specified, returns # flow information for all tables. # # Returns: rocker OF-DPA flow information # # Since: 2.4 # # Example: # # -> { "execute": "query-rocker-of-dpa-flows", # "arguments": { "name": "sw1" } } # <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0}, # "hits": 138, # "cookie": 0, # "action": {"goto-tbl": 10}, # "mask": {"in-pport": 4294901760} # }, # {...more...}, # ]} # ## { 'command': 'query-rocker-of-dpa-flows', 'data': { 'name': 'str', '*tbl-id': 'uint32' }, 'returns': ['RockerOfDpaFlow'] } ## # @RockerOfDpaGroup: # # Rocker switch OF-DPA group # # @id: group unique ID # # @type: group type # # @vlan-id: VLAN ID # # @pport: physical port number # # @index: group index, unique with group type # # @out-pport: output physical port number # # @group-id: next group ID # # @set-vlan-id: VLAN ID to set # # @pop-vlan: pop VLAN headr from packet # # @group-ids: list of next group IDs # # @set-eth-src: set source MAC address in Ethernet header # # @set-eth-dst: set destination MAC address in Ethernet header # # @ttl-check: perform TTL check # # Note: optional members may or may not appear in the group depending # if they're relevant to the group type. # # Since: 2.4 ## { 'struct': 'RockerOfDpaGroup', 'data': { 'id': 'uint32', 'type': 'uint8', '*vlan-id': 'uint16', '*pport': 'uint32', '*index': 'uint32', '*out-pport': 'uint32', '*group-id': 'uint32', '*set-vlan-id': 'uint16', '*pop-vlan': 'uint8', '*group-ids': ['uint32'], '*set-eth-src': 'str', '*set-eth-dst': 'str', '*ttl-check': 'uint8' } } ## # @query-rocker-of-dpa-groups: # # Return rocker OF-DPA group information. # # @name: switch name # # @type: group type. If type is not specified, returns # group information for all group types. # # Returns: rocker OF-DPA group information # # Since: 2.4 # # Example: # # -> { "execute": "query-rocker-of-dpa-groups", # "arguments": { "name": "sw1" } } # <- { "return": [ {"type": 0, "out-pport": 2, # "pport": 2, "vlan-id": 3841, # "pop-vlan": 1, "id": 251723778}, # {"type": 0, "out-pport": 0, # "pport": 0, "vlan-id": 3841, # "pop-vlan": 1, "id": 251723776}, # {"type": 0, "out-pport": 1, # "pport": 1, "vlan-id": 3840, # "pop-vlan": 1, "id": 251658241}, # {"type": 0, "out-pport": 0, # "pport": 0, "vlan-id": 3840, # "pop-vlan": 1, "id": 251658240} # ]} # ## { 'command': 'query-rocker-of-dpa-groups', 'data': { 'name': 'str', '*type': 'uint8' }, 'returns': ['RockerOfDpaGroup'] }