1*93b230b5SDonald Hunter# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2*93b230b5SDonald Hunter 3*93b230b5SDonald Huntername: ovs_flow 4*93b230b5SDonald Hunterversion: 1 5*93b230b5SDonald Hunterprotocol: genetlink-legacy 6*93b230b5SDonald Hunter 7*93b230b5SDonald Hunterdoc: 8*93b230b5SDonald Hunter OVS flow configuration over generic netlink. 9*93b230b5SDonald Hunter 10*93b230b5SDonald Hunterdefinitions: 11*93b230b5SDonald Hunter - 12*93b230b5SDonald Hunter name: ovs-header 13*93b230b5SDonald Hunter type: struct 14*93b230b5SDonald Hunter doc: | 15*93b230b5SDonald Hunter Header for OVS Generic Netlink messages. 16*93b230b5SDonald Hunter members: 17*93b230b5SDonald Hunter - 18*93b230b5SDonald Hunter name: dp-ifindex 19*93b230b5SDonald Hunter type: u32 20*93b230b5SDonald Hunter doc: | 21*93b230b5SDonald Hunter ifindex of local port for datapath (0 to make a request not specific 22*93b230b5SDonald Hunter to a datapath). 23*93b230b5SDonald Hunter - 24*93b230b5SDonald Hunter name: ovs-flow-stats 25*93b230b5SDonald Hunter type: struct 26*93b230b5SDonald Hunter members: 27*93b230b5SDonald Hunter - 28*93b230b5SDonald Hunter name: n-packets 29*93b230b5SDonald Hunter type: u64 30*93b230b5SDonald Hunter doc: Number of matched packets. 31*93b230b5SDonald Hunter - 32*93b230b5SDonald Hunter name: n-bytes 33*93b230b5SDonald Hunter type: u64 34*93b230b5SDonald Hunter doc: Number of matched bytes. 35*93b230b5SDonald Hunter - 36*93b230b5SDonald Hunter name: ovs-key-mpls 37*93b230b5SDonald Hunter type: struct 38*93b230b5SDonald Hunter members: 39*93b230b5SDonald Hunter - 40*93b230b5SDonald Hunter name: mpls-lse 41*93b230b5SDonald Hunter type: u32 42*93b230b5SDonald Hunter byte-order: big-endian 43*93b230b5SDonald Hunter - 44*93b230b5SDonald Hunter name: ovs-key-ipv4 45*93b230b5SDonald Hunter type: struct 46*93b230b5SDonald Hunter members: 47*93b230b5SDonald Hunter - 48*93b230b5SDonald Hunter name: ipv4-src 49*93b230b5SDonald Hunter type: u32 50*93b230b5SDonald Hunter byte-order: big-endian 51*93b230b5SDonald Hunter - 52*93b230b5SDonald Hunter name: ipv4-dst 53*93b230b5SDonald Hunter type: u32 54*93b230b5SDonald Hunter byte-order: big-endian 55*93b230b5SDonald Hunter - 56*93b230b5SDonald Hunter name: ipv4-proto 57*93b230b5SDonald Hunter type: u8 58*93b230b5SDonald Hunter - 59*93b230b5SDonald Hunter name: ipv4-tos 60*93b230b5SDonald Hunter type: u8 61*93b230b5SDonald Hunter - 62*93b230b5SDonald Hunter name: ipv4-ttl 63*93b230b5SDonald Hunter type: u8 64*93b230b5SDonald Hunter - 65*93b230b5SDonald Hunter name: ipv4-frag 66*93b230b5SDonald Hunter type: u8 67*93b230b5SDonald Hunter enum: ovs-frag-type 68*93b230b5SDonald Hunter - 69*93b230b5SDonald Hunter name: ovs-frag-type 70*93b230b5SDonald Hunter type: enum 71*93b230b5SDonald Hunter entries: 72*93b230b5SDonald Hunter - 73*93b230b5SDonald Hunter name: none 74*93b230b5SDonald Hunter doc: Packet is not a fragment. 75*93b230b5SDonald Hunter - 76*93b230b5SDonald Hunter name: first 77*93b230b5SDonald Hunter doc: Packet is a fragment with offset 0. 78*93b230b5SDonald Hunter - 79*93b230b5SDonald Hunter name: later 80*93b230b5SDonald Hunter doc: Packet is a fragment with nonzero offset. 81*93b230b5SDonald Hunter - 82*93b230b5SDonald Hunter name: any 83*93b230b5SDonald Hunter value: 255 84*93b230b5SDonald Hunter - 85*93b230b5SDonald Hunter name: ovs-key-tcp 86*93b230b5SDonald Hunter type: struct 87*93b230b5SDonald Hunter members: 88*93b230b5SDonald Hunter - 89*93b230b5SDonald Hunter name: tcp-src 90*93b230b5SDonald Hunter type: u16 91*93b230b5SDonald Hunter byte-order: big-endian 92*93b230b5SDonald Hunter - 93*93b230b5SDonald Hunter name: tcp-dst 94*93b230b5SDonald Hunter type: u16 95*93b230b5SDonald Hunter byte-order: big-endian 96*93b230b5SDonald Hunter - 97*93b230b5SDonald Hunter name: ovs-key-udp 98*93b230b5SDonald Hunter type: struct 99*93b230b5SDonald Hunter members: 100*93b230b5SDonald Hunter - 101*93b230b5SDonald Hunter name: udp-src 102*93b230b5SDonald Hunter type: u16 103*93b230b5SDonald Hunter byte-order: big-endian 104*93b230b5SDonald Hunter - 105*93b230b5SDonald Hunter name: udp-dst 106*93b230b5SDonald Hunter type: u16 107*93b230b5SDonald Hunter byte-order: big-endian 108*93b230b5SDonald Hunter - 109*93b230b5SDonald Hunter name: ovs-key-sctp 110*93b230b5SDonald Hunter type: struct 111*93b230b5SDonald Hunter members: 112*93b230b5SDonald Hunter - 113*93b230b5SDonald Hunter name: sctp-src 114*93b230b5SDonald Hunter type: u16 115*93b230b5SDonald Hunter byte-order: big-endian 116*93b230b5SDonald Hunter - 117*93b230b5SDonald Hunter name: sctp-dst 118*93b230b5SDonald Hunter type: u16 119*93b230b5SDonald Hunter byte-order: big-endian 120*93b230b5SDonald Hunter - 121*93b230b5SDonald Hunter name: ovs-key-icmp 122*93b230b5SDonald Hunter type: struct 123*93b230b5SDonald Hunter members: 124*93b230b5SDonald Hunter - 125*93b230b5SDonald Hunter name: icmp-type 126*93b230b5SDonald Hunter type: u8 127*93b230b5SDonald Hunter - 128*93b230b5SDonald Hunter name: icmp-code 129*93b230b5SDonald Hunter type: u8 130*93b230b5SDonald Hunter - 131*93b230b5SDonald Hunter name: ovs-key-ct-tuple-ipv4 132*93b230b5SDonald Hunter type: struct 133*93b230b5SDonald Hunter members: 134*93b230b5SDonald Hunter - 135*93b230b5SDonald Hunter name: ipv4-src 136*93b230b5SDonald Hunter type: u32 137*93b230b5SDonald Hunter byte-order: big-endian 138*93b230b5SDonald Hunter - 139*93b230b5SDonald Hunter name: ipv4-dst 140*93b230b5SDonald Hunter type: u32 141*93b230b5SDonald Hunter byte-order: big-endian 142*93b230b5SDonald Hunter - 143*93b230b5SDonald Hunter name: src-port 144*93b230b5SDonald Hunter type: u16 145*93b230b5SDonald Hunter byte-order: big-endian 146*93b230b5SDonald Hunter - 147*93b230b5SDonald Hunter name: dst-port 148*93b230b5SDonald Hunter type: u16 149*93b230b5SDonald Hunter byte-order: big-endian 150*93b230b5SDonald Hunter - 151*93b230b5SDonald Hunter name: ipv4-proto 152*93b230b5SDonald Hunter type: u8 153*93b230b5SDonald Hunter - 154*93b230b5SDonald Hunter name: ovs-action-push-vlan 155*93b230b5SDonald Hunter type: struct 156*93b230b5SDonald Hunter members: 157*93b230b5SDonald Hunter - 158*93b230b5SDonald Hunter name: vlan_tpid 159*93b230b5SDonald Hunter type: u16 160*93b230b5SDonald Hunter byte-order: big-endian 161*93b230b5SDonald Hunter doc: Tag protocol identifier (TPID) to push. 162*93b230b5SDonald Hunter - 163*93b230b5SDonald Hunter name: vlan_tci 164*93b230b5SDonald Hunter type: u16 165*93b230b5SDonald Hunter byte-order: big-endian 166*93b230b5SDonald Hunter doc: Tag control identifier (TCI) to push. 167*93b230b5SDonald Hunter - 168*93b230b5SDonald Hunter name: ovs-ufid-flags 169*93b230b5SDonald Hunter type: flags 170*93b230b5SDonald Hunter entries: 171*93b230b5SDonald Hunter - omit-key 172*93b230b5SDonald Hunter - omit-mask 173*93b230b5SDonald Hunter - omit-actions 174*93b230b5SDonald Hunter - 175*93b230b5SDonald Hunter name: ovs-action-hash 176*93b230b5SDonald Hunter type: struct 177*93b230b5SDonald Hunter members: 178*93b230b5SDonald Hunter - 179*93b230b5SDonald Hunter name: hash-algorithm 180*93b230b5SDonald Hunter type: u32 181*93b230b5SDonald Hunter doc: Algorithm used to compute hash prior to recirculation. 182*93b230b5SDonald Hunter - 183*93b230b5SDonald Hunter name: hash-basis 184*93b230b5SDonald Hunter type: u32 185*93b230b5SDonald Hunter doc: Basis used for computing hash. 186*93b230b5SDonald Hunter - 187*93b230b5SDonald Hunter name: ovs-hash-alg 188*93b230b5SDonald Hunter type: enum 189*93b230b5SDonald Hunter doc: | 190*93b230b5SDonald Hunter Data path hash algorithm for computing Datapath hash. The algorithm type only specifies 191*93b230b5SDonald Hunter the fields in a flow will be used as part of the hash. Each datapath is free to use its 192*93b230b5SDonald Hunter own hash algorithm. The hash value will be opaque to the user space daemon. 193*93b230b5SDonald Hunter entries: 194*93b230b5SDonald Hunter - ovs-hash-alg-l4 195*93b230b5SDonald Hunter 196*93b230b5SDonald Hunter - 197*93b230b5SDonald Hunter name: ovs-action-push-mpls 198*93b230b5SDonald Hunter type: struct 199*93b230b5SDonald Hunter members: 200*93b230b5SDonald Hunter - 201*93b230b5SDonald Hunter name: lse 202*93b230b5SDonald Hunter type: u32 203*93b230b5SDonald Hunter byte-order: big-endian 204*93b230b5SDonald Hunter doc: | 205*93b230b5SDonald Hunter MPLS label stack entry to push 206*93b230b5SDonald Hunter - 207*93b230b5SDonald Hunter name: ethertype 208*93b230b5SDonald Hunter type: u32 209*93b230b5SDonald Hunter byte-order: big-endian 210*93b230b5SDonald Hunter doc: | 211*93b230b5SDonald Hunter Ethertype to set in the encapsulating ethernet frame. The only values 212*93b230b5SDonald Hunter ethertype should ever be given are ETH_P_MPLS_UC and ETH_P_MPLS_MC, 213*93b230b5SDonald Hunter indicating MPLS unicast or multicast. Other are rejected. 214*93b230b5SDonald Hunter - 215*93b230b5SDonald Hunter name: ovs-action-add-mpls 216*93b230b5SDonald Hunter type: struct 217*93b230b5SDonald Hunter members: 218*93b230b5SDonald Hunter - 219*93b230b5SDonald Hunter name: lse 220*93b230b5SDonald Hunter type: u32 221*93b230b5SDonald Hunter byte-order: big-endian 222*93b230b5SDonald Hunter doc: | 223*93b230b5SDonald Hunter MPLS label stack entry to push 224*93b230b5SDonald Hunter - 225*93b230b5SDonald Hunter name: ethertype 226*93b230b5SDonald Hunter type: u32 227*93b230b5SDonald Hunter byte-order: big-endian 228*93b230b5SDonald Hunter doc: | 229*93b230b5SDonald Hunter Ethertype to set in the encapsulating ethernet frame. The only values 230*93b230b5SDonald Hunter ethertype should ever be given are ETH_P_MPLS_UC and ETH_P_MPLS_MC, 231*93b230b5SDonald Hunter indicating MPLS unicast or multicast. Other are rejected. 232*93b230b5SDonald Hunter - 233*93b230b5SDonald Hunter name: tun-flags 234*93b230b5SDonald Hunter type: u16 235*93b230b5SDonald Hunter doc: | 236*93b230b5SDonald Hunter MPLS tunnel attributes. 237*93b230b5SDonald Hunter - 238*93b230b5SDonald Hunter name: ct-state-flags 239*93b230b5SDonald Hunter type: flags 240*93b230b5SDonald Hunter entries: 241*93b230b5SDonald Hunter - 242*93b230b5SDonald Hunter name: new 243*93b230b5SDonald Hunter doc: Beginning of a new connection. 244*93b230b5SDonald Hunter - 245*93b230b5SDonald Hunter name: established 246*93b230b5SDonald Hunter doc: Part of an existing connenction 247*93b230b5SDonald Hunter - 248*93b230b5SDonald Hunter name: related 249*93b230b5SDonald Hunter doc: Related to an existing connection. 250*93b230b5SDonald Hunter - 251*93b230b5SDonald Hunter name: reply-dir 252*93b230b5SDonald Hunter doc: Flow is in the reply direction. 253*93b230b5SDonald Hunter - 254*93b230b5SDonald Hunter name: invalid 255*93b230b5SDonald Hunter doc: Could not track the connection. 256*93b230b5SDonald Hunter - 257*93b230b5SDonald Hunter name: tracked 258*93b230b5SDonald Hunter doc: Conntrack has occurred. 259*93b230b5SDonald Hunter - 260*93b230b5SDonald Hunter name: src-nat 261*93b230b5SDonald Hunter doc: Packet's source address/port was mangled by NAT. 262*93b230b5SDonald Hunter - 263*93b230b5SDonald Hunter name: dst-nat 264*93b230b5SDonald Hunter doc: Packet's destination address/port was mangled by NAT. 265*93b230b5SDonald Hunter 266*93b230b5SDonald Hunterattribute-sets: 267*93b230b5SDonald Hunter - 268*93b230b5SDonald Hunter name: flow-attrs 269*93b230b5SDonald Hunter attributes: 270*93b230b5SDonald Hunter - 271*93b230b5SDonald Hunter name: key 272*93b230b5SDonald Hunter type: nest 273*93b230b5SDonald Hunter nested-attributes: key-attrs 274*93b230b5SDonald Hunter doc: | 275*93b230b5SDonald Hunter Nested attributes specifying the flow key. Always present in 276*93b230b5SDonald Hunter notifications. Required for all requests (except dumps). 277*93b230b5SDonald Hunter - 278*93b230b5SDonald Hunter name: actions 279*93b230b5SDonald Hunter type: nest 280*93b230b5SDonald Hunter nested-attributes: action-attrs 281*93b230b5SDonald Hunter doc: | 282*93b230b5SDonald Hunter Nested attributes specifying the actions to take for packets that 283*93b230b5SDonald Hunter match the key. Always present in notifications. Required for 284*93b230b5SDonald Hunter OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests. An 285*93b230b5SDonald Hunter OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the 286*93b230b5SDonald Hunter actions. To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any 287*93b230b5SDonald Hunter nested attributes must be given. 288*93b230b5SDonald Hunter - 289*93b230b5SDonald Hunter name: stats 290*93b230b5SDonald Hunter type: binary 291*93b230b5SDonald Hunter struct: ovs-flow-stats 292*93b230b5SDonald Hunter doc: | 293*93b230b5SDonald Hunter Statistics for this flow. Present in notifications if the stats would 294*93b230b5SDonald Hunter be nonzero. Ignored in requests. 295*93b230b5SDonald Hunter - 296*93b230b5SDonald Hunter name: tcp-flags 297*93b230b5SDonald Hunter type: u8 298*93b230b5SDonald Hunter doc: | 299*93b230b5SDonald Hunter An 8-bit value giving the ORed value of all of the TCP flags seen on 300*93b230b5SDonald Hunter packets in this flow. Only present in notifications for TCP flows, and 301*93b230b5SDonald Hunter only if it would be nonzero. Ignored in requests. 302*93b230b5SDonald Hunter - 303*93b230b5SDonald Hunter name: used 304*93b230b5SDonald Hunter type: u64 305*93b230b5SDonald Hunter doc: | 306*93b230b5SDonald Hunter A 64-bit integer giving the time, in milliseconds on the system 307*93b230b5SDonald Hunter monotonic clock, at which a packet was last processed for this 308*93b230b5SDonald Hunter flow. Only present in notifications if a packet has been processed for 309*93b230b5SDonald Hunter this flow. Ignored in requests. 310*93b230b5SDonald Hunter - 311*93b230b5SDonald Hunter name: clear 312*93b230b5SDonald Hunter type: flag 313*93b230b5SDonald Hunter doc: | 314*93b230b5SDonald Hunter If present in a OVS_FLOW_CMD_SET request, clears the last-used time, 315*93b230b5SDonald Hunter accumulated TCP flags, and statistics for this flow. Otherwise 316*93b230b5SDonald Hunter ignored in requests. Never present in notifications. 317*93b230b5SDonald Hunter - 318*93b230b5SDonald Hunter name: mask 319*93b230b5SDonald Hunter type: nest 320*93b230b5SDonald Hunter nested-attributes: key-attrs 321*93b230b5SDonald Hunter doc: | 322*93b230b5SDonald Hunter Nested attributes specifying the mask bits for wildcarded flow 323*93b230b5SDonald Hunter match. Mask bit value '1' specifies exact match with corresponding 324*93b230b5SDonald Hunter flow key bit, while mask bit value '0' specifies a wildcarded 325*93b230b5SDonald Hunter match. Omitting attribute is treated as wildcarding all corresponding 326*93b230b5SDonald Hunter fields. Optional for all requests. If not present, all flow key bits 327*93b230b5SDonald Hunter are exact match bits. 328*93b230b5SDonald Hunter - 329*93b230b5SDonald Hunter name: probe 330*93b230b5SDonald Hunter type: binary 331*93b230b5SDonald Hunter doc: | 332*93b230b5SDonald Hunter Flow operation is a feature probe, error logging should be suppressed. 333*93b230b5SDonald Hunter - 334*93b230b5SDonald Hunter name: ufid 335*93b230b5SDonald Hunter type: binary 336*93b230b5SDonald Hunter doc: | 337*93b230b5SDonald Hunter A value between 1-16 octets specifying a unique identifier for the 338*93b230b5SDonald Hunter flow. Causes the flow to be indexed by this value rather than the 339*93b230b5SDonald Hunter value of the OVS_FLOW_ATTR_KEY attribute. Optional for all 340*93b230b5SDonald Hunter requests. Present in notifications if the flow was created with this 341*93b230b5SDonald Hunter attribute. 342*93b230b5SDonald Hunter - 343*93b230b5SDonald Hunter name: ufid-flags 344*93b230b5SDonald Hunter type: u32 345*93b230b5SDonald Hunter enum: ovs-ufid-flags 346*93b230b5SDonald Hunter doc: | 347*93b230b5SDonald Hunter A 32-bit value of ORed flags that provide alternative semantics for 348*93b230b5SDonald Hunter flow installation and retrieval. Optional for all requests. 349*93b230b5SDonald Hunter - 350*93b230b5SDonald Hunter name: pad 351*93b230b5SDonald Hunter type: binary 352*93b230b5SDonald Hunter 353*93b230b5SDonald Hunter - 354*93b230b5SDonald Hunter name: key-attrs 355*93b230b5SDonald Hunter attributes: 356*93b230b5SDonald Hunter - 357*93b230b5SDonald Hunter name: encap 358*93b230b5SDonald Hunter type: nest 359*93b230b5SDonald Hunter nested-attributes: key-attrs 360*93b230b5SDonald Hunter - 361*93b230b5SDonald Hunter name: priority 362*93b230b5SDonald Hunter type: u32 363*93b230b5SDonald Hunter - 364*93b230b5SDonald Hunter name: in-port 365*93b230b5SDonald Hunter type: u32 366*93b230b5SDonald Hunter - 367*93b230b5SDonald Hunter name: ethernet 368*93b230b5SDonald Hunter type: binary 369*93b230b5SDonald Hunter doc: struct ovs_key_ethernet 370*93b230b5SDonald Hunter - 371*93b230b5SDonald Hunter name: vlan 372*93b230b5SDonald Hunter type: u16 373*93b230b5SDonald Hunter byte-order: big-endian 374*93b230b5SDonald Hunter - 375*93b230b5SDonald Hunter name: ethertype 376*93b230b5SDonald Hunter type: u16 377*93b230b5SDonald Hunter byte-order: big-endian 378*93b230b5SDonald Hunter - 379*93b230b5SDonald Hunter name: ipv4 380*93b230b5SDonald Hunter type: binary 381*93b230b5SDonald Hunter struct: ovs-key-ipv4 382*93b230b5SDonald Hunter - 383*93b230b5SDonald Hunter name: ipv6 384*93b230b5SDonald Hunter type: binary 385*93b230b5SDonald Hunter doc: struct ovs_key_ipv6 386*93b230b5SDonald Hunter - 387*93b230b5SDonald Hunter name: tcp 388*93b230b5SDonald Hunter type: binary 389*93b230b5SDonald Hunter struct: ovs-key-tcp 390*93b230b5SDonald Hunter - 391*93b230b5SDonald Hunter name: udp 392*93b230b5SDonald Hunter type: binary 393*93b230b5SDonald Hunter struct: ovs-key-udp 394*93b230b5SDonald Hunter - 395*93b230b5SDonald Hunter name: icmp 396*93b230b5SDonald Hunter type: binary 397*93b230b5SDonald Hunter struct: ovs-key-icmp 398*93b230b5SDonald Hunter - 399*93b230b5SDonald Hunter name: icmpv6 400*93b230b5SDonald Hunter type: binary 401*93b230b5SDonald Hunter struct: ovs-key-icmp 402*93b230b5SDonald Hunter - 403*93b230b5SDonald Hunter name: arp 404*93b230b5SDonald Hunter type: binary 405*93b230b5SDonald Hunter doc: struct ovs_key_arp 406*93b230b5SDonald Hunter - 407*93b230b5SDonald Hunter name: nd 408*93b230b5SDonald Hunter type: binary 409*93b230b5SDonald Hunter doc: struct ovs_key_nd 410*93b230b5SDonald Hunter - 411*93b230b5SDonald Hunter name: skb-mark 412*93b230b5SDonald Hunter type: u32 413*93b230b5SDonald Hunter - 414*93b230b5SDonald Hunter name: tunnel 415*93b230b5SDonald Hunter type: nest 416*93b230b5SDonald Hunter nested-attributes: tunnel-key-attrs 417*93b230b5SDonald Hunter - 418*93b230b5SDonald Hunter name: sctp 419*93b230b5SDonald Hunter type: binary 420*93b230b5SDonald Hunter struct: ovs-key-sctp 421*93b230b5SDonald Hunter - 422*93b230b5SDonald Hunter name: tcp-flags 423*93b230b5SDonald Hunter type: u16 424*93b230b5SDonald Hunter byte-order: big-endian 425*93b230b5SDonald Hunter - 426*93b230b5SDonald Hunter name: dp-hash 427*93b230b5SDonald Hunter type: u32 428*93b230b5SDonald Hunter doc: Value 0 indicates the hash is not computed by the datapath. 429*93b230b5SDonald Hunter - 430*93b230b5SDonald Hunter name: recirc-id 431*93b230b5SDonald Hunter type: u32 432*93b230b5SDonald Hunter - 433*93b230b5SDonald Hunter name: mpls 434*93b230b5SDonald Hunter type: binary 435*93b230b5SDonald Hunter struct: ovs-key-mpls 436*93b230b5SDonald Hunter - 437*93b230b5SDonald Hunter name: ct-state 438*93b230b5SDonald Hunter type: u32 439*93b230b5SDonald Hunter enum: ct-state-flags 440*93b230b5SDonald Hunter enum-as-flags: true 441*93b230b5SDonald Hunter - 442*93b230b5SDonald Hunter name: ct-zone 443*93b230b5SDonald Hunter type: u16 444*93b230b5SDonald Hunter doc: connection tracking zone 445*93b230b5SDonald Hunter - 446*93b230b5SDonald Hunter name: ct-mark 447*93b230b5SDonald Hunter type: u32 448*93b230b5SDonald Hunter doc: connection tracking mark 449*93b230b5SDonald Hunter - 450*93b230b5SDonald Hunter name: ct-labels 451*93b230b5SDonald Hunter type: binary 452*93b230b5SDonald Hunter doc: 16-octet connection tracking label 453*93b230b5SDonald Hunter - 454*93b230b5SDonald Hunter name: ct-orig-tuple-ipv4 455*93b230b5SDonald Hunter type: binary 456*93b230b5SDonald Hunter struct: ovs-key-ct-tuple-ipv4 457*93b230b5SDonald Hunter - 458*93b230b5SDonald Hunter name: ct-orig-tuple-ipv6 459*93b230b5SDonald Hunter type: binary 460*93b230b5SDonald Hunter doc: struct ovs_key_ct_tuple_ipv6 461*93b230b5SDonald Hunter - 462*93b230b5SDonald Hunter name: nsh 463*93b230b5SDonald Hunter type: nest 464*93b230b5SDonald Hunter nested-attributes: ovs-nsh-key-attrs 465*93b230b5SDonald Hunter - 466*93b230b5SDonald Hunter name: packet-type 467*93b230b5SDonald Hunter type: u32 468*93b230b5SDonald Hunter byte-order: big-endian 469*93b230b5SDonald Hunter doc: Should not be sent to the kernel 470*93b230b5SDonald Hunter - 471*93b230b5SDonald Hunter name: nd-extensions 472*93b230b5SDonald Hunter type: binary 473*93b230b5SDonald Hunter doc: Should not be sent to the kernel 474*93b230b5SDonald Hunter - 475*93b230b5SDonald Hunter name: tunnel-info 476*93b230b5SDonald Hunter type: binary 477*93b230b5SDonald Hunter doc: struct ip_tunnel_info 478*93b230b5SDonald Hunter - 479*93b230b5SDonald Hunter name: ipv6-exthdrs 480*93b230b5SDonald Hunter type: binary 481*93b230b5SDonald Hunter doc: struct ovs_key_ipv6_exthdr 482*93b230b5SDonald Hunter - 483*93b230b5SDonald Hunter name: action-attrs 484*93b230b5SDonald Hunter attributes: 485*93b230b5SDonald Hunter - 486*93b230b5SDonald Hunter name: output 487*93b230b5SDonald Hunter type: u32 488*93b230b5SDonald Hunter doc: ovs port number in datapath 489*93b230b5SDonald Hunter - 490*93b230b5SDonald Hunter name: userspace 491*93b230b5SDonald Hunter type: nest 492*93b230b5SDonald Hunter nested-attributes: userspace-attrs 493*93b230b5SDonald Hunter - 494*93b230b5SDonald Hunter name: set 495*93b230b5SDonald Hunter type: nest 496*93b230b5SDonald Hunter nested-attributes: key-attrs 497*93b230b5SDonald Hunter doc: Replaces the contents of an existing header. The single nested attribute specifies a header to modify and its value. 498*93b230b5SDonald Hunter - 499*93b230b5SDonald Hunter name: push-vlan 500*93b230b5SDonald Hunter type: binary 501*93b230b5SDonald Hunter struct: ovs-action-push-vlan 502*93b230b5SDonald Hunter doc: Push a new outermost 802.1Q or 802.1ad header onto the packet. 503*93b230b5SDonald Hunter - 504*93b230b5SDonald Hunter name: pop-vlan 505*93b230b5SDonald Hunter type: flag 506*93b230b5SDonald Hunter doc: Pop the outermost 802.1Q or 802.1ad header from the packet. 507*93b230b5SDonald Hunter - 508*93b230b5SDonald Hunter name: sample 509*93b230b5SDonald Hunter type: nest 510*93b230b5SDonald Hunter nested-attributes: sample-attrs 511*93b230b5SDonald Hunter doc: | 512*93b230b5SDonald Hunter Probabilistically executes actions, as specified in the nested attributes. 513*93b230b5SDonald Hunter - 514*93b230b5SDonald Hunter name: recirc 515*93b230b5SDonald Hunter type: u32 516*93b230b5SDonald Hunter doc: recirc id 517*93b230b5SDonald Hunter - 518*93b230b5SDonald Hunter name: hash 519*93b230b5SDonald Hunter type: binary 520*93b230b5SDonald Hunter struct: ovs-action-hash 521*93b230b5SDonald Hunter - 522*93b230b5SDonald Hunter name: push-mpls 523*93b230b5SDonald Hunter type: binary 524*93b230b5SDonald Hunter struct: ovs-action-push-mpls 525*93b230b5SDonald Hunter doc: | 526*93b230b5SDonald Hunter Push a new MPLS label stack entry onto the top of the packets MPLS 527*93b230b5SDonald Hunter label stack. Set the ethertype of the encapsulating frame to either 528*93b230b5SDonald Hunter ETH_P_MPLS_UC or ETH_P_MPLS_MC to indicate the new packet contents. 529*93b230b5SDonald Hunter - 530*93b230b5SDonald Hunter name: pop-mpls 531*93b230b5SDonald Hunter type: u16 532*93b230b5SDonald Hunter byte-order: big-endian 533*93b230b5SDonald Hunter doc: ethertype 534*93b230b5SDonald Hunter - 535*93b230b5SDonald Hunter name: set-masked 536*93b230b5SDonald Hunter type: nest 537*93b230b5SDonald Hunter nested-attributes: key-attrs 538*93b230b5SDonald Hunter doc: | 539*93b230b5SDonald Hunter Replaces the contents of an existing header. A nested attribute 540*93b230b5SDonald Hunter specifies a header to modify, its value, and a mask. For every bit set 541*93b230b5SDonald Hunter in the mask, the corresponding bit value is copied from the value to 542*93b230b5SDonald Hunter the packet header field, rest of the bits are left unchanged. The 543*93b230b5SDonald Hunter non-masked value bits must be passed in as zeroes. Masking is not 544*93b230b5SDonald Hunter supported for the OVS_KEY_ATTR_TUNNEL attribute. 545*93b230b5SDonald Hunter - 546*93b230b5SDonald Hunter name: ct 547*93b230b5SDonald Hunter type: nest 548*93b230b5SDonald Hunter nested-attributes: ct-attrs 549*93b230b5SDonald Hunter doc: | 550*93b230b5SDonald Hunter Track the connection. Populate the conntrack-related entries 551*93b230b5SDonald Hunter in the flow key. 552*93b230b5SDonald Hunter - 553*93b230b5SDonald Hunter name: trunc 554*93b230b5SDonald Hunter type: u32 555*93b230b5SDonald Hunter doc: struct ovs_action_trunc is a u32 max length 556*93b230b5SDonald Hunter - 557*93b230b5SDonald Hunter name: push-eth 558*93b230b5SDonald Hunter type: binary 559*93b230b5SDonald Hunter doc: struct ovs_action_push_eth 560*93b230b5SDonald Hunter - 561*93b230b5SDonald Hunter name: pop-eth 562*93b230b5SDonald Hunter type: flag 563*93b230b5SDonald Hunter - 564*93b230b5SDonald Hunter name: ct-clear 565*93b230b5SDonald Hunter type: flag 566*93b230b5SDonald Hunter - 567*93b230b5SDonald Hunter name: push-nsh 568*93b230b5SDonald Hunter type: nest 569*93b230b5SDonald Hunter nested-attributes: ovs-nsh-key-attrs 570*93b230b5SDonald Hunter doc: | 571*93b230b5SDonald Hunter Push NSH header to the packet. 572*93b230b5SDonald Hunter - 573*93b230b5SDonald Hunter name: pop-nsh 574*93b230b5SDonald Hunter type: flag 575*93b230b5SDonald Hunter doc: | 576*93b230b5SDonald Hunter Pop the outermost NSH header off the packet. 577*93b230b5SDonald Hunter - 578*93b230b5SDonald Hunter name: meter 579*93b230b5SDonald Hunter type: u32 580*93b230b5SDonald Hunter doc: | 581*93b230b5SDonald Hunter Run packet through a meter, which may drop the packet, or modify the 582*93b230b5SDonald Hunter packet (e.g., change the DSCP field) 583*93b230b5SDonald Hunter - 584*93b230b5SDonald Hunter name: clone 585*93b230b5SDonald Hunter type: nest 586*93b230b5SDonald Hunter nested-attributes: action-attrs 587*93b230b5SDonald Hunter doc: | 588*93b230b5SDonald Hunter Make a copy of the packet and execute a list of actions without 589*93b230b5SDonald Hunter affecting the original packet and key. 590*93b230b5SDonald Hunter - 591*93b230b5SDonald Hunter name: check-pkt-len 592*93b230b5SDonald Hunter type: nest 593*93b230b5SDonald Hunter nested-attributes: check-pkt-len-attrs 594*93b230b5SDonald Hunter doc: | 595*93b230b5SDonald Hunter Check the packet length and execute a set of actions if greater than 596*93b230b5SDonald Hunter the specified packet length, else execute another set of actions. 597*93b230b5SDonald Hunter - 598*93b230b5SDonald Hunter name: add-mpls 599*93b230b5SDonald Hunter type: binary 600*93b230b5SDonald Hunter struct: ovs-action-add-mpls 601*93b230b5SDonald Hunter doc: | 602*93b230b5SDonald Hunter Push a new MPLS label stack entry at the start of the packet or at the 603*93b230b5SDonald Hunter start of the l3 header depending on the value of l3 tunnel flag in the 604*93b230b5SDonald Hunter tun_flags field of this OVS_ACTION_ATTR_ADD_MPLS argument. 605*93b230b5SDonald Hunter - 606*93b230b5SDonald Hunter name: dec-ttl 607*93b230b5SDonald Hunter type: nest 608*93b230b5SDonald Hunter nested-attributes: dec-ttl-attrs 609*93b230b5SDonald Hunter - 610*93b230b5SDonald Hunter name: tunnel-key-attrs 611*93b230b5SDonald Hunter attributes: 612*93b230b5SDonald Hunter - 613*93b230b5SDonald Hunter name: id 614*93b230b5SDonald Hunter type: u64 615*93b230b5SDonald Hunter byte-order: big-endian 616*93b230b5SDonald Hunter value: 0 617*93b230b5SDonald Hunter - 618*93b230b5SDonald Hunter name: ipv4-src 619*93b230b5SDonald Hunter type: u32 620*93b230b5SDonald Hunter byte-order: big-endian 621*93b230b5SDonald Hunter - 622*93b230b5SDonald Hunter name: ipv4-dst 623*93b230b5SDonald Hunter type: u32 624*93b230b5SDonald Hunter byte-order: big-endian 625*93b230b5SDonald Hunter - 626*93b230b5SDonald Hunter name: tos 627*93b230b5SDonald Hunter type: u8 628*93b230b5SDonald Hunter - 629*93b230b5SDonald Hunter name: ttl 630*93b230b5SDonald Hunter type: u8 631*93b230b5SDonald Hunter - 632*93b230b5SDonald Hunter name: dont-fragment 633*93b230b5SDonald Hunter type: flag 634*93b230b5SDonald Hunter - 635*93b230b5SDonald Hunter name: csum 636*93b230b5SDonald Hunter type: flag 637*93b230b5SDonald Hunter - 638*93b230b5SDonald Hunter name: oam 639*93b230b5SDonald Hunter type: flag 640*93b230b5SDonald Hunter - 641*93b230b5SDonald Hunter name: geneve-opts 642*93b230b5SDonald Hunter type: binary 643*93b230b5SDonald Hunter sub-type: u32 644*93b230b5SDonald Hunter - 645*93b230b5SDonald Hunter name: tp-src 646*93b230b5SDonald Hunter type: u16 647*93b230b5SDonald Hunter byte-order: big-endian 648*93b230b5SDonald Hunter - 649*93b230b5SDonald Hunter name: tp-dst 650*93b230b5SDonald Hunter type: u16 651*93b230b5SDonald Hunter byte-order: big-endian 652*93b230b5SDonald Hunter - 653*93b230b5SDonald Hunter name: vxlan-opts 654*93b230b5SDonald Hunter type: nest 655*93b230b5SDonald Hunter nested-attributes: vxlan-ext-attrs 656*93b230b5SDonald Hunter - 657*93b230b5SDonald Hunter name: ipv6-src 658*93b230b5SDonald Hunter type: binary 659*93b230b5SDonald Hunter doc: | 660*93b230b5SDonald Hunter struct in6_addr source IPv6 address 661*93b230b5SDonald Hunter - 662*93b230b5SDonald Hunter name: ipv6-dst 663*93b230b5SDonald Hunter type: binary 664*93b230b5SDonald Hunter doc: | 665*93b230b5SDonald Hunter struct in6_addr destination IPv6 address 666*93b230b5SDonald Hunter - 667*93b230b5SDonald Hunter name: pad 668*93b230b5SDonald Hunter type: binary 669*93b230b5SDonald Hunter - 670*93b230b5SDonald Hunter name: erspan-opts 671*93b230b5SDonald Hunter type: binary 672*93b230b5SDonald Hunter doc: | 673*93b230b5SDonald Hunter struct erspan_metadata 674*93b230b5SDonald Hunter - 675*93b230b5SDonald Hunter name: ipv4-info-bridge 676*93b230b5SDonald Hunter type: flag 677*93b230b5SDonald Hunter - 678*93b230b5SDonald Hunter name: check-pkt-len-attrs 679*93b230b5SDonald Hunter attributes: 680*93b230b5SDonald Hunter - 681*93b230b5SDonald Hunter name: pkt-len 682*93b230b5SDonald Hunter type: u16 683*93b230b5SDonald Hunter - 684*93b230b5SDonald Hunter name: actions-if-greater 685*93b230b5SDonald Hunter type: nest 686*93b230b5SDonald Hunter nested-attributes: action-attrs 687*93b230b5SDonald Hunter - 688*93b230b5SDonald Hunter name: actions-if-less-equal 689*93b230b5SDonald Hunter type: nest 690*93b230b5SDonald Hunter nested-attributes: action-attrs 691*93b230b5SDonald Hunter - 692*93b230b5SDonald Hunter name: sample-attrs 693*93b230b5SDonald Hunter attributes: 694*93b230b5SDonald Hunter - 695*93b230b5SDonald Hunter name: probability 696*93b230b5SDonald Hunter type: u32 697*93b230b5SDonald Hunter - 698*93b230b5SDonald Hunter name: actions 699*93b230b5SDonald Hunter type: nest 700*93b230b5SDonald Hunter nested-attributes: action-attrs 701*93b230b5SDonald Hunter - 702*93b230b5SDonald Hunter name: userspace-attrs 703*93b230b5SDonald Hunter attributes: 704*93b230b5SDonald Hunter - 705*93b230b5SDonald Hunter name: pid 706*93b230b5SDonald Hunter type: u32 707*93b230b5SDonald Hunter - 708*93b230b5SDonald Hunter name: userdata 709*93b230b5SDonald Hunter type: binary 710*93b230b5SDonald Hunter - 711*93b230b5SDonald Hunter name: egress-tun-port 712*93b230b5SDonald Hunter type: u32 713*93b230b5SDonald Hunter - 714*93b230b5SDonald Hunter name: actions 715*93b230b5SDonald Hunter type: flag 716*93b230b5SDonald Hunter - 717*93b230b5SDonald Hunter name: ovs-nsh-key-attrs 718*93b230b5SDonald Hunter attributes: 719*93b230b5SDonald Hunter - 720*93b230b5SDonald Hunter name: base 721*93b230b5SDonald Hunter type: binary 722*93b230b5SDonald Hunter - 723*93b230b5SDonald Hunter name: md1 724*93b230b5SDonald Hunter type: binary 725*93b230b5SDonald Hunter - 726*93b230b5SDonald Hunter name: md2 727*93b230b5SDonald Hunter type: binary 728*93b230b5SDonald Hunter - 729*93b230b5SDonald Hunter name: ct-attrs 730*93b230b5SDonald Hunter attributes: 731*93b230b5SDonald Hunter - 732*93b230b5SDonald Hunter name: commit 733*93b230b5SDonald Hunter type: flag 734*93b230b5SDonald Hunter - 735*93b230b5SDonald Hunter name: zone 736*93b230b5SDonald Hunter type: u16 737*93b230b5SDonald Hunter - 738*93b230b5SDonald Hunter name: mark 739*93b230b5SDonald Hunter type: binary 740*93b230b5SDonald Hunter - 741*93b230b5SDonald Hunter name: labels 742*93b230b5SDonald Hunter type: binary 743*93b230b5SDonald Hunter - 744*93b230b5SDonald Hunter name: helper 745*93b230b5SDonald Hunter type: string 746*93b230b5SDonald Hunter - 747*93b230b5SDonald Hunter name: nat 748*93b230b5SDonald Hunter type: nest 749*93b230b5SDonald Hunter nested-attributes: nat-attrs 750*93b230b5SDonald Hunter - 751*93b230b5SDonald Hunter name: force-commit 752*93b230b5SDonald Hunter type: flag 753*93b230b5SDonald Hunter - 754*93b230b5SDonald Hunter name: eventmask 755*93b230b5SDonald Hunter type: u32 756*93b230b5SDonald Hunter - 757*93b230b5SDonald Hunter name: timeout 758*93b230b5SDonald Hunter type: string 759*93b230b5SDonald Hunter - 760*93b230b5SDonald Hunter name: nat-attrs 761*93b230b5SDonald Hunter attributes: 762*93b230b5SDonald Hunter - 763*93b230b5SDonald Hunter name: src 764*93b230b5SDonald Hunter type: binary 765*93b230b5SDonald Hunter - 766*93b230b5SDonald Hunter name: dst 767*93b230b5SDonald Hunter type: binary 768*93b230b5SDonald Hunter - 769*93b230b5SDonald Hunter name: ip-min 770*93b230b5SDonald Hunter type: binary 771*93b230b5SDonald Hunter - 772*93b230b5SDonald Hunter name: ip-max 773*93b230b5SDonald Hunter type: binary 774*93b230b5SDonald Hunter - 775*93b230b5SDonald Hunter name: proto-min 776*93b230b5SDonald Hunter type: binary 777*93b230b5SDonald Hunter - 778*93b230b5SDonald Hunter name: proto-max 779*93b230b5SDonald Hunter type: binary 780*93b230b5SDonald Hunter - 781*93b230b5SDonald Hunter name: persistent 782*93b230b5SDonald Hunter type: binary 783*93b230b5SDonald Hunter - 784*93b230b5SDonald Hunter name: proto-hash 785*93b230b5SDonald Hunter type: binary 786*93b230b5SDonald Hunter - 787*93b230b5SDonald Hunter name: proto-random 788*93b230b5SDonald Hunter type: binary 789*93b230b5SDonald Hunter - 790*93b230b5SDonald Hunter name: dec-ttl-attrs 791*93b230b5SDonald Hunter attributes: 792*93b230b5SDonald Hunter - 793*93b230b5SDonald Hunter name: action 794*93b230b5SDonald Hunter type: nest 795*93b230b5SDonald Hunter nested-attributes: action-attrs 796*93b230b5SDonald Hunter - 797*93b230b5SDonald Hunter name: vxlan-ext-attrs 798*93b230b5SDonald Hunter attributes: 799*93b230b5SDonald Hunter - 800*93b230b5SDonald Hunter name: gbp 801*93b230b5SDonald Hunter type: u32 802*93b230b5SDonald Hunter 803*93b230b5SDonald Hunteroperations: 804*93b230b5SDonald Hunter fixed-header: ovs-header 805*93b230b5SDonald Hunter list: 806*93b230b5SDonald Hunter - 807*93b230b5SDonald Hunter name: flow-get 808*93b230b5SDonald Hunter doc: Get / dump OVS flow configuration and state 809*93b230b5SDonald Hunter value: 3 810*93b230b5SDonald Hunter attribute-set: flow-attrs 811*93b230b5SDonald Hunter do: &flow-get-op 812*93b230b5SDonald Hunter request: 813*93b230b5SDonald Hunter attributes: 814*93b230b5SDonald Hunter - dp-ifindex 815*93b230b5SDonald Hunter - key 816*93b230b5SDonald Hunter - ufid 817*93b230b5SDonald Hunter - ufid-flags 818*93b230b5SDonald Hunter reply: 819*93b230b5SDonald Hunter attributes: 820*93b230b5SDonald Hunter - dp-ifindex 821*93b230b5SDonald Hunter - key 822*93b230b5SDonald Hunter - ufid 823*93b230b5SDonald Hunter - mask 824*93b230b5SDonald Hunter - stats 825*93b230b5SDonald Hunter - actions 826*93b230b5SDonald Hunter dump: *flow-get-op 827*93b230b5SDonald Hunter 828*93b230b5SDonald Huntermcast-groups: 829*93b230b5SDonald Hunter list: 830*93b230b5SDonald Hunter - 831*93b230b5SDonald Hunter name: ovs_flow 832