123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- # -*- 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.
- #
- # @name: switch name
- #
- # Returns: @Rocker information
- #
- # Since: 2.4
- #
- # .. qmp-example::
- #
- # -> { "execute": "query-rocker", "arguments": { "name": "sw1" } }
- # <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}}
- ##
- { 'command': 'query-rocker',
- 'data': { 'name': 'str' },
- 'returns': 'RockerSwitch' }
- ##
- # @RockerPortDuplex:
- #
- # An enumeration of port duplex states.
- #
- # @half: half duplex
- #
- # @full: full duplex
- #
- # Since: 2.4
- ##
- { 'enum': 'RockerPortDuplex', 'data': [ 'half', 'full' ] }
- ##
- # @RockerPortAutoneg:
- #
- # An enumeration 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.
- #
- # @name: port name
- #
- # Returns: a list of @RockerPort information
- #
- # Since: 2.4
- #
- # .. qmp-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
- #
- # .. qmp-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}
- # },
- # ...
- # ]}
- ##
- { '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
- #
- # .. qmp-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'] }
|