1## 2# = Rocker switch device 3## 4 5## 6# @RockerSwitch: 7# 8# Rocker switch information. 9# 10# @name: switch name 11# 12# @id: switch ID 13# 14# @ports: number of front-panel ports 15# 16# Since: 2.4 17## 18{ 'struct': 'RockerSwitch', 19 'data': { 'name': 'str', 'id': 'uint64', 'ports': 'uint32' } } 20 21## 22# @query-rocker: 23# 24# Return rocker switch information. 25# 26# Returns: @Rocker information 27# 28# Since: 2.4 29# 30# Example: 31# 32# -> { "execute": "query-rocker", "arguments": { "name": "sw1" } } 33# <- { "return": {"name": "sw1", "ports": 2, "id": 1327446905938}} 34# 35## 36{ 'command': 'query-rocker', 37 'data': { 'name': 'str' }, 38 'returns': 'RockerSwitch' } 39 40## 41# @RockerPortDuplex: 42# 43# An eumeration of port duplex states. 44# 45# @half: half duplex 46# 47# @full: full duplex 48# 49# Since: 2.4 50## 51{ 'enum': 'RockerPortDuplex', 'data': [ 'half', 'full' ] } 52 53## 54# @RockerPortAutoneg: 55# 56# An eumeration of port autoneg states. 57# 58# @off: autoneg is off 59# 60# @on: autoneg is on 61# 62# Since: 2.4 63## 64{ 'enum': 'RockerPortAutoneg', 'data': [ 'off', 'on' ] } 65 66## 67# @RockerPort: 68# 69# Rocker switch port information. 70# 71# @name: port name 72# 73# @enabled: port is enabled for I/O 74# 75# @link-up: physical link is UP on port 76# 77# @speed: port link speed in Mbps 78# 79# @duplex: port link duplex 80# 81# @autoneg: port link autoneg 82# 83# Since: 2.4 84## 85{ 'struct': 'RockerPort', 86 'data': { 'name': 'str', 'enabled': 'bool', 'link-up': 'bool', 87 'speed': 'uint32', 'duplex': 'RockerPortDuplex', 88 'autoneg': 'RockerPortAutoneg' } } 89 90## 91# @query-rocker-ports: 92# 93# Return rocker switch port information. 94# 95# Returns: a list of @RockerPort information 96# 97# Since: 2.4 98# 99# Example: 100# 101# -> { "execute": "query-rocker-ports", "arguments": { "name": "sw1" } } 102# <- { "return": [ {"duplex": "full", "enabled": true, "name": "sw1.1", 103# "autoneg": "off", "link-up": true, "speed": 10000}, 104# {"duplex": "full", "enabled": true, "name": "sw1.2", 105# "autoneg": "off", "link-up": true, "speed": 10000} 106# ]} 107# 108## 109{ 'command': 'query-rocker-ports', 110 'data': { 'name': 'str' }, 111 'returns': ['RockerPort'] } 112 113## 114# @RockerOfDpaFlowKey: 115# 116# Rocker switch OF-DPA flow key 117# 118# @priority: key priority, 0 being lowest priority 119# 120# @tbl-id: flow table ID 121# 122# @in-pport: #optional physical input port 123# 124# @tunnel-id: #optional tunnel ID 125# 126# @vlan-id: #optional VLAN ID 127# 128# @eth-type: #optional Ethernet header type 129# 130# @eth-src: #optional Ethernet header source MAC address 131# 132# @eth-dst: #optional Ethernet header destination MAC address 133# 134# @ip-proto: #optional IP Header protocol field 135# 136# @ip-tos: #optional IP header TOS field 137# 138# @ip-dst: #optional IP header destination address 139# 140# Note: fields are marked #optional to indicate that they may or may not 141# appear in the flow key depending if they're relevant to the flow key. 142# 143# Since: 2.4 144## 145{ 'struct': 'RockerOfDpaFlowKey', 146 'data' : { 'priority': 'uint32', 'tbl-id': 'uint32', '*in-pport': 'uint32', 147 '*tunnel-id': 'uint32', '*vlan-id': 'uint16', 148 '*eth-type': 'uint16', '*eth-src': 'str', '*eth-dst': 'str', 149 '*ip-proto': 'uint8', '*ip-tos': 'uint8', '*ip-dst': 'str' } } 150 151## 152# @RockerOfDpaFlowMask: 153# 154# Rocker switch OF-DPA flow mask 155# 156# @in-pport: #optional physical input port 157# 158# @tunnel-id: #optional tunnel ID 159# 160# @vlan-id: #optional VLAN ID 161# 162# @eth-src: #optional Ethernet header source MAC address 163# 164# @eth-dst: #optional Ethernet header destination MAC address 165# 166# @ip-proto: #optional IP Header protocol field 167# 168# @ip-tos: #optional IP header TOS field 169# 170# Note: fields are marked #optional to indicate that they may or may not 171# appear in the flow mask depending if they're relevant to the flow mask. 172# 173# Since: 2.4 174## 175{ 'struct': 'RockerOfDpaFlowMask', 176 'data' : { '*in-pport': 'uint32', '*tunnel-id': 'uint32', 177 '*vlan-id': 'uint16', '*eth-src': 'str', '*eth-dst': 'str', 178 '*ip-proto': 'uint8', '*ip-tos': 'uint8' } } 179 180## 181# @RockerOfDpaFlowAction: 182# 183# Rocker switch OF-DPA flow action 184# 185# @goto-tbl: #optional next table ID 186# 187# @group-id: #optional group ID 188# 189# @tunnel-lport: #optional tunnel logical port ID 190# 191# @vlan-id: #optional VLAN ID 192# 193# @new-vlan-id: #optional new VLAN ID 194# 195# @out-pport: #optional physical output port 196# 197# Note: fields are marked #optional to indicate that they may or may not 198# appear in the flow action depending if they're relevant to the flow action. 199# 200# Since: 2.4 201## 202{ 'struct': 'RockerOfDpaFlowAction', 203 'data' : { '*goto-tbl': 'uint32', '*group-id': 'uint32', 204 '*tunnel-lport': 'uint32', '*vlan-id': 'uint16', 205 '*new-vlan-id': 'uint16', '*out-pport': 'uint32' } } 206 207## 208# @RockerOfDpaFlow: 209# 210# Rocker switch OF-DPA flow 211# 212# @cookie: flow unique cookie ID 213# 214# @hits: count of matches (hits) on flow 215# 216# @key: flow key 217# 218# @mask: flow mask 219# 220# @action: flow action 221# 222# Since: 2.4 223## 224{ 'struct': 'RockerOfDpaFlow', 225 'data': { 'cookie': 'uint64', 'hits': 'uint64', 'key': 'RockerOfDpaFlowKey', 226 'mask': 'RockerOfDpaFlowMask', 'action': 'RockerOfDpaFlowAction' } } 227 228## 229# @query-rocker-of-dpa-flows: 230# 231# Return rocker OF-DPA flow information. 232# 233# @name: switch name 234# 235# @tbl-id: #optional flow table ID. If tbl-id is not specified, returns 236# flow information for all tables. 237# 238# Returns: rocker OF-DPA flow information 239# 240# Since: 2.4 241# 242# Example: 243# 244# -> { "execute": "query-rocker-of-dpa-flows", 245# "arguments": { "name": "sw1" } } 246# <- { "return": [ {"key": {"in-pport": 0, "priority": 1, "tbl-id": 0}, 247# "hits": 138, 248# "cookie": 0, 249# "action": {"goto-tbl": 10}, 250# "mask": {"in-pport": 4294901760} 251# }, 252# {...more...}, 253# ]} 254# 255## 256{ 'command': 'query-rocker-of-dpa-flows', 257 'data': { 'name': 'str', '*tbl-id': 'uint32' }, 258 'returns': ['RockerOfDpaFlow'] } 259 260## 261# @RockerOfDpaGroup: 262# 263# Rocker switch OF-DPA group 264# 265# @id: group unique ID 266# 267# @type: group type 268# 269# @vlan-id: #optional VLAN ID 270# 271# @pport: #optional physical port number 272# 273# @index: #optional group index, unique with group type 274# 275# @out-pport: #optional output physical port number 276# 277# @group-id: #optional next group ID 278# 279# @set-vlan-id: #optional VLAN ID to set 280# 281# @pop-vlan: #optional pop VLAN headr from packet 282# 283# @group-ids: #optional list of next group IDs 284# 285# @set-eth-src: #optional set source MAC address in Ethernet header 286# 287# @set-eth-dst: #optional set destination MAC address in Ethernet header 288# 289# @ttl-check: #optional perform TTL check 290# 291# Note: fields are marked #optional to indicate that they may or may not 292# appear in the group depending if they're relevant to the group type. 293# 294# Since: 2.4 295## 296{ 'struct': 'RockerOfDpaGroup', 297 'data': { 'id': 'uint32', 'type': 'uint8', '*vlan-id': 'uint16', 298 '*pport': 'uint32', '*index': 'uint32', '*out-pport': 'uint32', 299 '*group-id': 'uint32', '*set-vlan-id': 'uint16', 300 '*pop-vlan': 'uint8', '*group-ids': ['uint32'], 301 '*set-eth-src': 'str', '*set-eth-dst': 'str', 302 '*ttl-check': 'uint8' } } 303 304## 305# @query-rocker-of-dpa-groups: 306# 307# Return rocker OF-DPA group information. 308# 309# @name: switch name 310# 311# @type: #optional group type. If type is not specified, returns 312# group information for all group types. 313# 314# Returns: rocker OF-DPA group information 315# 316# Since: 2.4 317# 318# Example: 319# 320# -> { "execute": "query-rocker-of-dpa-groups", 321# "arguments": { "name": "sw1" } } 322# <- { "return": [ {"type": 0, "out-pport": 2, 323# "pport": 2, "vlan-id": 3841, 324# "pop-vlan": 1, "id": 251723778}, 325# {"type": 0, "out-pport": 0, 326# "pport": 0, "vlan-id": 3841, 327# "pop-vlan": 1, "id": 251723776}, 328# {"type": 0, "out-pport": 1, 329# "pport": 1, "vlan-id": 3840, 330# "pop-vlan": 1, "id": 251658241}, 331# {"type": 0, "out-pport": 0, 332# "pport": 0, "vlan-id": 3840, 333# "pop-vlan": 1, "id": 251658240} 334# ]} 335# 336## 337{ 'command': 'query-rocker-of-dpa-groups', 338 'data': { 'name': 'str', '*type': 'uint8' }, 339 'returns': ['RockerOfDpaGroup'] } 340