193b230b5SDonald Hunter# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
293b230b5SDonald Hunter
393b230b5SDonald Huntername: ovs_flow
493b230b5SDonald Hunterversion: 1
593b230b5SDonald Hunterprotocol: genetlink-legacy
6*6907217aSDonald Hunteruapi-header: linux/openvswitch.h
793b230b5SDonald Hunter
893b230b5SDonald Hunterdoc:
993b230b5SDonald Hunter  OVS flow configuration over generic netlink.
1093b230b5SDonald Hunter
1193b230b5SDonald Hunterdefinitions:
1293b230b5SDonald Hunter  -
1393b230b5SDonald Hunter    name: ovs-header
1493b230b5SDonald Hunter    type: struct
1593b230b5SDonald Hunter    doc: |
1693b230b5SDonald Hunter      Header for OVS Generic Netlink messages.
1793b230b5SDonald Hunter    members:
1893b230b5SDonald Hunter      -
1993b230b5SDonald Hunter        name: dp-ifindex
2093b230b5SDonald Hunter        type: u32
2193b230b5SDonald Hunter        doc: |
2293b230b5SDonald Hunter          ifindex of local port for datapath (0 to make a request not specific
2393b230b5SDonald Hunter          to a datapath).
2493b230b5SDonald Hunter  -
2593b230b5SDonald Hunter    name: ovs-flow-stats
2693b230b5SDonald Hunter    type: struct
2793b230b5SDonald Hunter    members:
2893b230b5SDonald Hunter      -
2993b230b5SDonald Hunter        name: n-packets
3093b230b5SDonald Hunter        type: u64
3193b230b5SDonald Hunter        doc: Number of matched packets.
3293b230b5SDonald Hunter      -
3393b230b5SDonald Hunter        name: n-bytes
3493b230b5SDonald Hunter        type: u64
3593b230b5SDonald Hunter        doc: Number of matched bytes.
3693b230b5SDonald Hunter  -
3793b230b5SDonald Hunter    name: ovs-key-mpls
3893b230b5SDonald Hunter    type: struct
3993b230b5SDonald Hunter    members:
4093b230b5SDonald Hunter      -
4193b230b5SDonald Hunter        name: mpls-lse
4293b230b5SDonald Hunter        type: u32
4393b230b5SDonald Hunter        byte-order: big-endian
4493b230b5SDonald Hunter  -
4593b230b5SDonald Hunter    name: ovs-key-ipv4
4693b230b5SDonald Hunter    type: struct
4793b230b5SDonald Hunter    members:
4893b230b5SDonald Hunter      -
4993b230b5SDonald Hunter        name: ipv4-src
5093b230b5SDonald Hunter        type: u32
5193b230b5SDonald Hunter        byte-order: big-endian
5293b230b5SDonald Hunter      -
5393b230b5SDonald Hunter        name: ipv4-dst
5493b230b5SDonald Hunter        type: u32
5593b230b5SDonald Hunter        byte-order: big-endian
5693b230b5SDonald Hunter      -
5793b230b5SDonald Hunter        name: ipv4-proto
5893b230b5SDonald Hunter        type: u8
5993b230b5SDonald Hunter      -
6093b230b5SDonald Hunter        name: ipv4-tos
6193b230b5SDonald Hunter        type: u8
6293b230b5SDonald Hunter      -
6393b230b5SDonald Hunter        name: ipv4-ttl
6493b230b5SDonald Hunter        type: u8
6593b230b5SDonald Hunter      -
6693b230b5SDonald Hunter        name: ipv4-frag
6793b230b5SDonald Hunter        type: u8
6893b230b5SDonald Hunter        enum: ovs-frag-type
6993b230b5SDonald Hunter  -
7093b230b5SDonald Hunter    name: ovs-frag-type
71*6907217aSDonald Hunter    name-prefix: ovs-frag-type-
7293b230b5SDonald Hunter    type: enum
7393b230b5SDonald Hunter    entries:
7493b230b5SDonald Hunter      -
7593b230b5SDonald Hunter        name: none
7693b230b5SDonald Hunter        doc: Packet is not a fragment.
7793b230b5SDonald Hunter      -
7893b230b5SDonald Hunter        name: first
7993b230b5SDonald Hunter        doc: Packet is a fragment with offset 0.
8093b230b5SDonald Hunter      -
8193b230b5SDonald Hunter        name: later
8293b230b5SDonald Hunter        doc: Packet is a fragment with nonzero offset.
8393b230b5SDonald Hunter      -
8493b230b5SDonald Hunter        name: any
8593b230b5SDonald Hunter        value: 255
8693b230b5SDonald Hunter  -
8793b230b5SDonald Hunter    name: ovs-key-tcp
8893b230b5SDonald Hunter    type: struct
8993b230b5SDonald Hunter    members:
9093b230b5SDonald Hunter      -
9193b230b5SDonald Hunter        name: tcp-src
9293b230b5SDonald Hunter        type: u16
9393b230b5SDonald Hunter        byte-order: big-endian
9493b230b5SDonald Hunter      -
9593b230b5SDonald Hunter        name: tcp-dst
9693b230b5SDonald Hunter        type: u16
9793b230b5SDonald Hunter        byte-order: big-endian
9893b230b5SDonald Hunter  -
9993b230b5SDonald Hunter    name: ovs-key-udp
10093b230b5SDonald Hunter    type: struct
10193b230b5SDonald Hunter    members:
10293b230b5SDonald Hunter      -
10393b230b5SDonald Hunter        name: udp-src
10493b230b5SDonald Hunter        type: u16
10593b230b5SDonald Hunter        byte-order: big-endian
10693b230b5SDonald Hunter      -
10793b230b5SDonald Hunter        name: udp-dst
10893b230b5SDonald Hunter        type: u16
10993b230b5SDonald Hunter        byte-order: big-endian
11093b230b5SDonald Hunter  -
11193b230b5SDonald Hunter    name: ovs-key-sctp
11293b230b5SDonald Hunter    type: struct
11393b230b5SDonald Hunter    members:
11493b230b5SDonald Hunter      -
11593b230b5SDonald Hunter        name: sctp-src
11693b230b5SDonald Hunter        type: u16
11793b230b5SDonald Hunter        byte-order: big-endian
11893b230b5SDonald Hunter      -
11993b230b5SDonald Hunter        name: sctp-dst
12093b230b5SDonald Hunter        type: u16
12193b230b5SDonald Hunter        byte-order: big-endian
12293b230b5SDonald Hunter  -
12393b230b5SDonald Hunter    name: ovs-key-icmp
12493b230b5SDonald Hunter    type: struct
12593b230b5SDonald Hunter    members:
12693b230b5SDonald Hunter      -
12793b230b5SDonald Hunter        name: icmp-type
12893b230b5SDonald Hunter        type: u8
12993b230b5SDonald Hunter      -
13093b230b5SDonald Hunter        name: icmp-code
13193b230b5SDonald Hunter        type: u8
13293b230b5SDonald Hunter  -
13393b230b5SDonald Hunter    name: ovs-key-ct-tuple-ipv4
13493b230b5SDonald Hunter    type: struct
13593b230b5SDonald Hunter    members:
13693b230b5SDonald Hunter      -
13793b230b5SDonald Hunter        name: ipv4-src
13893b230b5SDonald Hunter        type: u32
13993b230b5SDonald Hunter        byte-order: big-endian
14093b230b5SDonald Hunter      -
14193b230b5SDonald Hunter        name: ipv4-dst
14293b230b5SDonald Hunter        type: u32
14393b230b5SDonald Hunter        byte-order: big-endian
14493b230b5SDonald Hunter      -
14593b230b5SDonald Hunter        name: src-port
14693b230b5SDonald Hunter        type: u16
14793b230b5SDonald Hunter        byte-order: big-endian
14893b230b5SDonald Hunter      -
14993b230b5SDonald Hunter        name: dst-port
15093b230b5SDonald Hunter        type: u16
15193b230b5SDonald Hunter        byte-order: big-endian
15293b230b5SDonald Hunter      -
15393b230b5SDonald Hunter        name: ipv4-proto
15493b230b5SDonald Hunter        type: u8
15593b230b5SDonald Hunter  -
15693b230b5SDonald Hunter    name: ovs-action-push-vlan
15793b230b5SDonald Hunter    type: struct
15893b230b5SDonald Hunter    members:
15993b230b5SDonald Hunter      -
16093b230b5SDonald Hunter        name: vlan_tpid
16193b230b5SDonald Hunter        type: u16
16293b230b5SDonald Hunter        byte-order: big-endian
16393b230b5SDonald Hunter        doc: Tag protocol identifier (TPID) to push.
16493b230b5SDonald Hunter      -
16593b230b5SDonald Hunter        name: vlan_tci
16693b230b5SDonald Hunter        type: u16
16793b230b5SDonald Hunter        byte-order: big-endian
16893b230b5SDonald Hunter        doc: Tag control identifier (TCI) to push.
16993b230b5SDonald Hunter  -
17093b230b5SDonald Hunter    name: ovs-ufid-flags
171*6907217aSDonald Hunter    name-prefix: ovs-ufid-f-
17293b230b5SDonald Hunter    type: flags
17393b230b5SDonald Hunter    entries:
17493b230b5SDonald Hunter      - omit-key
17593b230b5SDonald Hunter      - omit-mask
17693b230b5SDonald Hunter      - omit-actions
17793b230b5SDonald Hunter  -
17893b230b5SDonald Hunter    name: ovs-action-hash
17993b230b5SDonald Hunter    type: struct
18093b230b5SDonald Hunter    members:
18193b230b5SDonald Hunter      -
182*6907217aSDonald Hunter        name: hash-alg
18393b230b5SDonald Hunter        type: u32
18493b230b5SDonald Hunter        doc: Algorithm used to compute hash prior to recirculation.
18593b230b5SDonald Hunter      -
18693b230b5SDonald Hunter        name: hash-basis
18793b230b5SDonald Hunter        type: u32
18893b230b5SDonald Hunter        doc: Basis used for computing hash.
18993b230b5SDonald Hunter  -
19093b230b5SDonald Hunter    name: ovs-hash-alg
19193b230b5SDonald Hunter    type: enum
19293b230b5SDonald Hunter    doc: |
19393b230b5SDonald Hunter      Data path hash algorithm for computing Datapath hash. The algorithm type only specifies
19493b230b5SDonald Hunter      the fields in a flow will be used as part of the hash. Each datapath is free to use its
19593b230b5SDonald Hunter      own hash algorithm. The hash value will be opaque to the user space daemon.
19693b230b5SDonald Hunter    entries:
19793b230b5SDonald Hunter      - ovs-hash-alg-l4
19893b230b5SDonald Hunter
19993b230b5SDonald Hunter  -
20093b230b5SDonald Hunter    name: ovs-action-push-mpls
20193b230b5SDonald Hunter    type: struct
20293b230b5SDonald Hunter    members:
20393b230b5SDonald Hunter      -
204*6907217aSDonald Hunter        name: mpls-lse
20593b230b5SDonald Hunter        type: u32
20693b230b5SDonald Hunter        byte-order: big-endian
20793b230b5SDonald Hunter        doc: |
20893b230b5SDonald Hunter          MPLS label stack entry to push
20993b230b5SDonald Hunter      -
210*6907217aSDonald Hunter        name: mpls-ethertype
21193b230b5SDonald Hunter        type: u32
21293b230b5SDonald Hunter        byte-order: big-endian
21393b230b5SDonald Hunter        doc: |
21493b230b5SDonald Hunter          Ethertype to set in the encapsulating ethernet frame.  The only values
21593b230b5SDonald Hunter          ethertype should ever be given are ETH_P_MPLS_UC and ETH_P_MPLS_MC,
21693b230b5SDonald Hunter          indicating MPLS unicast or multicast. Other are rejected.
21793b230b5SDonald Hunter  -
21893b230b5SDonald Hunter    name: ovs-action-add-mpls
21993b230b5SDonald Hunter    type: struct
22093b230b5SDonald Hunter    members:
22193b230b5SDonald Hunter      -
222*6907217aSDonald Hunter        name: mpls-lse
22393b230b5SDonald Hunter        type: u32
22493b230b5SDonald Hunter        byte-order: big-endian
22593b230b5SDonald Hunter        doc: |
22693b230b5SDonald Hunter          MPLS label stack entry to push
22793b230b5SDonald Hunter      -
228*6907217aSDonald Hunter        name: mpls-ethertype
22993b230b5SDonald Hunter        type: u32
23093b230b5SDonald Hunter        byte-order: big-endian
23193b230b5SDonald Hunter        doc: |
23293b230b5SDonald Hunter          Ethertype to set in the encapsulating ethernet frame.  The only values
23393b230b5SDonald Hunter          ethertype should ever be given are ETH_P_MPLS_UC and ETH_P_MPLS_MC,
23493b230b5SDonald Hunter          indicating MPLS unicast or multicast. Other are rejected.
23593b230b5SDonald Hunter      -
23693b230b5SDonald Hunter        name: tun-flags
23793b230b5SDonald Hunter        type: u16
23893b230b5SDonald Hunter        doc: |
23993b230b5SDonald Hunter          MPLS tunnel attributes.
24093b230b5SDonald Hunter  -
24193b230b5SDonald Hunter    name: ct-state-flags
24293b230b5SDonald Hunter    type: flags
243*6907217aSDonald Hunter    name-prefix: ovs-cs-f-
24493b230b5SDonald Hunter    entries:
24593b230b5SDonald Hunter      -
24693b230b5SDonald Hunter        name: new
24793b230b5SDonald Hunter        doc: Beginning of a new connection.
24893b230b5SDonald Hunter      -
24993b230b5SDonald Hunter        name: established
25093b230b5SDonald Hunter        doc: Part of an existing connenction
25193b230b5SDonald Hunter      -
25293b230b5SDonald Hunter        name: related
25393b230b5SDonald Hunter        doc: Related to an existing connection.
25493b230b5SDonald Hunter      -
25593b230b5SDonald Hunter        name: reply-dir
25693b230b5SDonald Hunter        doc: Flow is in the reply direction.
25793b230b5SDonald Hunter      -
25893b230b5SDonald Hunter        name: invalid
25993b230b5SDonald Hunter        doc: Could not track the connection.
26093b230b5SDonald Hunter      -
26193b230b5SDonald Hunter        name: tracked
26293b230b5SDonald Hunter        doc: Conntrack has occurred.
26393b230b5SDonald Hunter      -
26493b230b5SDonald Hunter        name: src-nat
26593b230b5SDonald Hunter        doc: Packet's source address/port was mangled by NAT.
26693b230b5SDonald Hunter      -
26793b230b5SDonald Hunter        name: dst-nat
26893b230b5SDonald Hunter        doc: Packet's destination address/port was mangled by NAT.
26993b230b5SDonald Hunter
27093b230b5SDonald Hunterattribute-sets:
27193b230b5SDonald Hunter  -
27293b230b5SDonald Hunter    name: flow-attrs
273*6907217aSDonald Hunter    enum-name: ovs-flow-attr
274*6907217aSDonald Hunter    name-prefix: ovs-flow-attr-
27593b230b5SDonald Hunter    attributes:
27693b230b5SDonald Hunter      -
27793b230b5SDonald Hunter        name: key
27893b230b5SDonald Hunter        type: nest
27993b230b5SDonald Hunter        nested-attributes: key-attrs
28093b230b5SDonald Hunter        doc: |
28193b230b5SDonald Hunter          Nested attributes specifying the flow key. Always present in
28293b230b5SDonald Hunter          notifications. Required for all requests (except dumps).
28393b230b5SDonald Hunter      -
28493b230b5SDonald Hunter        name: actions
28593b230b5SDonald Hunter        type: nest
28693b230b5SDonald Hunter        nested-attributes: action-attrs
28793b230b5SDonald Hunter        doc: |
28893b230b5SDonald Hunter          Nested attributes specifying the actions to take for packets that
28993b230b5SDonald Hunter          match the key. Always present in notifications. Required for
29093b230b5SDonald Hunter          OVS_FLOW_CMD_NEW requests, optional for OVS_FLOW_CMD_SET requests.  An
29193b230b5SDonald Hunter          OVS_FLOW_CMD_SET without OVS_FLOW_ATTR_ACTIONS will not modify the
29293b230b5SDonald Hunter          actions.  To clear the actions, an OVS_FLOW_ATTR_ACTIONS without any
29393b230b5SDonald Hunter          nested attributes must be given.
29493b230b5SDonald Hunter      -
29593b230b5SDonald Hunter        name: stats
29693b230b5SDonald Hunter        type: binary
29793b230b5SDonald Hunter        struct: ovs-flow-stats
29893b230b5SDonald Hunter        doc: |
29993b230b5SDonald Hunter          Statistics for this flow. Present in notifications if the stats would
30093b230b5SDonald Hunter          be nonzero. Ignored in requests.
30193b230b5SDonald Hunter      -
30293b230b5SDonald Hunter        name: tcp-flags
30393b230b5SDonald Hunter        type: u8
30493b230b5SDonald Hunter        doc: |
30593b230b5SDonald Hunter          An 8-bit value giving the ORed value of all of the TCP flags seen on
30693b230b5SDonald Hunter          packets in this flow. Only present in notifications for TCP flows, and
30793b230b5SDonald Hunter          only if it would be nonzero. Ignored in requests.
30893b230b5SDonald Hunter      -
30993b230b5SDonald Hunter        name: used
31093b230b5SDonald Hunter        type: u64
31193b230b5SDonald Hunter        doc: |
31293b230b5SDonald Hunter          A 64-bit integer giving the time, in milliseconds on the system
31393b230b5SDonald Hunter          monotonic clock, at which a packet was last processed for this
31493b230b5SDonald Hunter          flow. Only present in notifications if a packet has been processed for
31593b230b5SDonald Hunter          this flow. Ignored in requests.
31693b230b5SDonald Hunter      -
31793b230b5SDonald Hunter        name: clear
31893b230b5SDonald Hunter        type: flag
31993b230b5SDonald Hunter        doc: |
32093b230b5SDonald Hunter          If present in a OVS_FLOW_CMD_SET request, clears the last-used time,
32193b230b5SDonald Hunter          accumulated TCP flags, and statistics for this flow.  Otherwise
32293b230b5SDonald Hunter          ignored in requests. Never present in notifications.
32393b230b5SDonald Hunter      -
32493b230b5SDonald Hunter        name: mask
32593b230b5SDonald Hunter        type: nest
32693b230b5SDonald Hunter        nested-attributes: key-attrs
32793b230b5SDonald Hunter        doc: |
32893b230b5SDonald Hunter          Nested attributes specifying the mask bits for wildcarded flow
32993b230b5SDonald Hunter          match. Mask bit value '1' specifies exact match with corresponding
33093b230b5SDonald Hunter          flow key bit, while mask bit value '0' specifies a wildcarded
33193b230b5SDonald Hunter          match. Omitting attribute is treated as wildcarding all corresponding
33293b230b5SDonald Hunter          fields. Optional for all requests. If not present, all flow key bits
33393b230b5SDonald Hunter          are exact match bits.
33493b230b5SDonald Hunter      -
33593b230b5SDonald Hunter        name: probe
33693b230b5SDonald Hunter        type: binary
33793b230b5SDonald Hunter        doc: |
33893b230b5SDonald Hunter          Flow operation is a feature probe, error logging should be suppressed.
33993b230b5SDonald Hunter      -
34093b230b5SDonald Hunter        name: ufid
34193b230b5SDonald Hunter        type: binary
34293b230b5SDonald Hunter        doc: |
34393b230b5SDonald Hunter          A value between 1-16 octets specifying a unique identifier for the
34493b230b5SDonald Hunter          flow. Causes the flow to be indexed by this value rather than the
34593b230b5SDonald Hunter          value of the OVS_FLOW_ATTR_KEY attribute. Optional for all
34693b230b5SDonald Hunter          requests. Present in notifications if the flow was created with this
34793b230b5SDonald Hunter          attribute.
34893b230b5SDonald Hunter      -
34993b230b5SDonald Hunter        name: ufid-flags
35093b230b5SDonald Hunter        type: u32
35193b230b5SDonald Hunter        enum: ovs-ufid-flags
35293b230b5SDonald Hunter        doc: |
35393b230b5SDonald Hunter          A 32-bit value of ORed flags that provide alternative semantics for
35493b230b5SDonald Hunter          flow installation and retrieval. Optional for all requests.
35593b230b5SDonald Hunter      -
35693b230b5SDonald Hunter        name: pad
35793b230b5SDonald Hunter        type: binary
35893b230b5SDonald Hunter
35993b230b5SDonald Hunter  -
36093b230b5SDonald Hunter    name: key-attrs
361*6907217aSDonald Hunter    enum-name: ovs-key-attr
362*6907217aSDonald Hunter    name-prefix: ovs-key-attr-
36393b230b5SDonald Hunter    attributes:
36493b230b5SDonald Hunter      -
36593b230b5SDonald Hunter        name: encap
36693b230b5SDonald Hunter        type: nest
36793b230b5SDonald Hunter        nested-attributes: key-attrs
36893b230b5SDonald Hunter      -
36993b230b5SDonald Hunter        name: priority
37093b230b5SDonald Hunter        type: u32
37193b230b5SDonald Hunter      -
37293b230b5SDonald Hunter        name: in-port
37393b230b5SDonald Hunter        type: u32
37493b230b5SDonald Hunter      -
37593b230b5SDonald Hunter        name: ethernet
37693b230b5SDonald Hunter        type: binary
37793b230b5SDonald Hunter        doc: struct ovs_key_ethernet
37893b230b5SDonald Hunter      -
37993b230b5SDonald Hunter        name: vlan
38093b230b5SDonald Hunter        type: u16
38193b230b5SDonald Hunter        byte-order: big-endian
38293b230b5SDonald Hunter      -
38393b230b5SDonald Hunter        name: ethertype
38493b230b5SDonald Hunter        type: u16
38593b230b5SDonald Hunter        byte-order: big-endian
38693b230b5SDonald Hunter      -
38793b230b5SDonald Hunter        name: ipv4
38893b230b5SDonald Hunter        type: binary
38993b230b5SDonald Hunter        struct: ovs-key-ipv4
39093b230b5SDonald Hunter      -
39193b230b5SDonald Hunter        name: ipv6
39293b230b5SDonald Hunter        type: binary
39393b230b5SDonald Hunter        doc: struct ovs_key_ipv6
39493b230b5SDonald Hunter      -
39593b230b5SDonald Hunter        name: tcp
39693b230b5SDonald Hunter        type: binary
39793b230b5SDonald Hunter        struct: ovs-key-tcp
39893b230b5SDonald Hunter      -
39993b230b5SDonald Hunter        name: udp
40093b230b5SDonald Hunter        type: binary
40193b230b5SDonald Hunter        struct: ovs-key-udp
40293b230b5SDonald Hunter      -
40393b230b5SDonald Hunter        name: icmp
40493b230b5SDonald Hunter        type: binary
40593b230b5SDonald Hunter        struct: ovs-key-icmp
40693b230b5SDonald Hunter      -
40793b230b5SDonald Hunter        name: icmpv6
40893b230b5SDonald Hunter        type: binary
40993b230b5SDonald Hunter        struct: ovs-key-icmp
41093b230b5SDonald Hunter      -
41193b230b5SDonald Hunter        name: arp
41293b230b5SDonald Hunter        type: binary
41393b230b5SDonald Hunter        doc: struct ovs_key_arp
41493b230b5SDonald Hunter      -
41593b230b5SDonald Hunter        name: nd
41693b230b5SDonald Hunter        type: binary
41793b230b5SDonald Hunter        doc: struct ovs_key_nd
41893b230b5SDonald Hunter      -
41993b230b5SDonald Hunter        name: skb-mark
42093b230b5SDonald Hunter        type: u32
42193b230b5SDonald Hunter      -
42293b230b5SDonald Hunter        name: tunnel
42393b230b5SDonald Hunter        type: nest
42493b230b5SDonald Hunter        nested-attributes: tunnel-key-attrs
42593b230b5SDonald Hunter      -
42693b230b5SDonald Hunter        name: sctp
42793b230b5SDonald Hunter        type: binary
42893b230b5SDonald Hunter        struct: ovs-key-sctp
42993b230b5SDonald Hunter      -
43093b230b5SDonald Hunter        name: tcp-flags
43193b230b5SDonald Hunter        type: u16
43293b230b5SDonald Hunter        byte-order: big-endian
43393b230b5SDonald Hunter      -
43493b230b5SDonald Hunter        name: dp-hash
43593b230b5SDonald Hunter        type: u32
43693b230b5SDonald Hunter        doc: Value 0 indicates the hash is not computed by the datapath.
43793b230b5SDonald Hunter      -
43893b230b5SDonald Hunter        name: recirc-id
43993b230b5SDonald Hunter        type: u32
44093b230b5SDonald Hunter      -
44193b230b5SDonald Hunter        name: mpls
44293b230b5SDonald Hunter        type: binary
44393b230b5SDonald Hunter        struct: ovs-key-mpls
44493b230b5SDonald Hunter      -
44593b230b5SDonald Hunter        name: ct-state
44693b230b5SDonald Hunter        type: u32
44793b230b5SDonald Hunter        enum: ct-state-flags
44893b230b5SDonald Hunter        enum-as-flags: true
44993b230b5SDonald Hunter      -
45093b230b5SDonald Hunter        name: ct-zone
45193b230b5SDonald Hunter        type: u16
45293b230b5SDonald Hunter        doc: connection tracking zone
45393b230b5SDonald Hunter      -
45493b230b5SDonald Hunter        name: ct-mark
45593b230b5SDonald Hunter        type: u32
45693b230b5SDonald Hunter        doc: connection tracking mark
45793b230b5SDonald Hunter      -
45893b230b5SDonald Hunter        name: ct-labels
45993b230b5SDonald Hunter        type: binary
46093b230b5SDonald Hunter        doc: 16-octet connection tracking label
46193b230b5SDonald Hunter      -
46293b230b5SDonald Hunter        name: ct-orig-tuple-ipv4
46393b230b5SDonald Hunter        type: binary
46493b230b5SDonald Hunter        struct: ovs-key-ct-tuple-ipv4
46593b230b5SDonald Hunter      -
46693b230b5SDonald Hunter        name: ct-orig-tuple-ipv6
46793b230b5SDonald Hunter        type: binary
46893b230b5SDonald Hunter        doc: struct ovs_key_ct_tuple_ipv6
46993b230b5SDonald Hunter      -
47093b230b5SDonald Hunter        name: nsh
47193b230b5SDonald Hunter        type: nest
47293b230b5SDonald Hunter        nested-attributes: ovs-nsh-key-attrs
47393b230b5SDonald Hunter      -
47493b230b5SDonald Hunter        name: packet-type
47593b230b5SDonald Hunter        type: u32
47693b230b5SDonald Hunter        byte-order: big-endian
47793b230b5SDonald Hunter        doc: Should not be sent to the kernel
47893b230b5SDonald Hunter      -
47993b230b5SDonald Hunter        name: nd-extensions
48093b230b5SDonald Hunter        type: binary
48193b230b5SDonald Hunter        doc: Should not be sent to the kernel
48293b230b5SDonald Hunter      -
48393b230b5SDonald Hunter        name: tunnel-info
48493b230b5SDonald Hunter        type: binary
48593b230b5SDonald Hunter        doc: struct ip_tunnel_info
48693b230b5SDonald Hunter      -
48793b230b5SDonald Hunter        name: ipv6-exthdrs
48893b230b5SDonald Hunter        type: binary
48993b230b5SDonald Hunter        doc: struct ovs_key_ipv6_exthdr
49093b230b5SDonald Hunter  -
49193b230b5SDonald Hunter    name: action-attrs
492*6907217aSDonald Hunter    enum-name: ovs-action-attr
493*6907217aSDonald Hunter    name-prefix: ovs-action-attr-
49493b230b5SDonald Hunter    attributes:
49593b230b5SDonald Hunter      -
49693b230b5SDonald Hunter        name: output
49793b230b5SDonald Hunter        type: u32
49893b230b5SDonald Hunter        doc: ovs port number in datapath
49993b230b5SDonald Hunter      -
50093b230b5SDonald Hunter        name: userspace
50193b230b5SDonald Hunter        type: nest
50293b230b5SDonald Hunter        nested-attributes: userspace-attrs
50393b230b5SDonald Hunter      -
50493b230b5SDonald Hunter        name: set
50593b230b5SDonald Hunter        type: nest
50693b230b5SDonald Hunter        nested-attributes: key-attrs
50793b230b5SDonald Hunter        doc: Replaces the contents of an existing header. The single nested attribute specifies a header to modify and its value.
50893b230b5SDonald Hunter      -
50993b230b5SDonald Hunter        name: push-vlan
51093b230b5SDonald Hunter        type: binary
51193b230b5SDonald Hunter        struct: ovs-action-push-vlan
51293b230b5SDonald Hunter        doc: Push a new outermost 802.1Q or 802.1ad header onto the packet.
51393b230b5SDonald Hunter      -
51493b230b5SDonald Hunter        name: pop-vlan
51593b230b5SDonald Hunter        type: flag
51693b230b5SDonald Hunter        doc: Pop the outermost 802.1Q or 802.1ad header from the packet.
51793b230b5SDonald Hunter      -
51893b230b5SDonald Hunter        name: sample
51993b230b5SDonald Hunter        type: nest
52093b230b5SDonald Hunter        nested-attributes: sample-attrs
52193b230b5SDonald Hunter        doc: |
52293b230b5SDonald Hunter          Probabilistically executes actions, as specified in the nested attributes.
52393b230b5SDonald Hunter      -
52493b230b5SDonald Hunter        name: recirc
52593b230b5SDonald Hunter        type: u32
52693b230b5SDonald Hunter        doc: recirc id
52793b230b5SDonald Hunter      -
52893b230b5SDonald Hunter        name: hash
52993b230b5SDonald Hunter        type: binary
53093b230b5SDonald Hunter        struct: ovs-action-hash
53193b230b5SDonald Hunter      -
53293b230b5SDonald Hunter        name: push-mpls
53393b230b5SDonald Hunter        type: binary
53493b230b5SDonald Hunter        struct: ovs-action-push-mpls
53593b230b5SDonald Hunter        doc: |
53693b230b5SDonald Hunter          Push a new MPLS label stack entry onto the top of the packets MPLS
53793b230b5SDonald Hunter          label stack. Set the ethertype of the encapsulating frame to either
53893b230b5SDonald Hunter          ETH_P_MPLS_UC or ETH_P_MPLS_MC to indicate the new packet contents.
53993b230b5SDonald Hunter      -
54093b230b5SDonald Hunter        name: pop-mpls
54193b230b5SDonald Hunter        type: u16
54293b230b5SDonald Hunter        byte-order: big-endian
54393b230b5SDonald Hunter        doc: ethertype
54493b230b5SDonald Hunter      -
54593b230b5SDonald Hunter        name: set-masked
54693b230b5SDonald Hunter        type: nest
54793b230b5SDonald Hunter        nested-attributes: key-attrs
54893b230b5SDonald Hunter        doc: |
54993b230b5SDonald Hunter          Replaces the contents of an existing header. A nested attribute
55093b230b5SDonald Hunter          specifies a header to modify, its value, and a mask. For every bit set
55193b230b5SDonald Hunter          in the mask, the corresponding bit value is copied from the value to
55293b230b5SDonald Hunter          the packet header field, rest of the bits are left unchanged. The
55393b230b5SDonald Hunter          non-masked value bits must be passed in as zeroes. Masking is not
55493b230b5SDonald Hunter          supported for the OVS_KEY_ATTR_TUNNEL attribute.
55593b230b5SDonald Hunter      -
55693b230b5SDonald Hunter        name: ct
55793b230b5SDonald Hunter        type: nest
55893b230b5SDonald Hunter        nested-attributes: ct-attrs
55993b230b5SDonald Hunter        doc: |
56093b230b5SDonald Hunter          Track the connection. Populate the conntrack-related entries
56193b230b5SDonald Hunter          in the flow key.
56293b230b5SDonald Hunter      -
56393b230b5SDonald Hunter        name: trunc
56493b230b5SDonald Hunter        type: u32
56593b230b5SDonald Hunter        doc: struct ovs_action_trunc is a u32 max length
56693b230b5SDonald Hunter      -
56793b230b5SDonald Hunter        name: push-eth
56893b230b5SDonald Hunter        type: binary
56993b230b5SDonald Hunter        doc: struct ovs_action_push_eth
57093b230b5SDonald Hunter      -
57193b230b5SDonald Hunter        name: pop-eth
57293b230b5SDonald Hunter        type: flag
57393b230b5SDonald Hunter      -
57493b230b5SDonald Hunter        name: ct-clear
57593b230b5SDonald Hunter        type: flag
57693b230b5SDonald Hunter      -
57793b230b5SDonald Hunter        name: push-nsh
57893b230b5SDonald Hunter        type: nest
57993b230b5SDonald Hunter        nested-attributes: ovs-nsh-key-attrs
58093b230b5SDonald Hunter        doc: |
58193b230b5SDonald Hunter          Push NSH header to the packet.
58293b230b5SDonald Hunter      -
58393b230b5SDonald Hunter        name: pop-nsh
58493b230b5SDonald Hunter        type: flag
58593b230b5SDonald Hunter        doc: |
58693b230b5SDonald Hunter          Pop the outermost NSH header off the packet.
58793b230b5SDonald Hunter      -
58893b230b5SDonald Hunter        name: meter
58993b230b5SDonald Hunter        type: u32
59093b230b5SDonald Hunter        doc: |
59193b230b5SDonald Hunter          Run packet through a meter, which may drop the packet, or modify the
59293b230b5SDonald Hunter          packet (e.g., change the DSCP field)
59393b230b5SDonald Hunter      -
59493b230b5SDonald Hunter        name: clone
59593b230b5SDonald Hunter        type: nest
59693b230b5SDonald Hunter        nested-attributes: action-attrs
59793b230b5SDonald Hunter        doc: |
59893b230b5SDonald Hunter          Make a copy of the packet and execute a list of actions without
59993b230b5SDonald Hunter          affecting the original packet and key.
60093b230b5SDonald Hunter      -
60193b230b5SDonald Hunter        name: check-pkt-len
60293b230b5SDonald Hunter        type: nest
60393b230b5SDonald Hunter        nested-attributes: check-pkt-len-attrs
60493b230b5SDonald Hunter        doc: |
60593b230b5SDonald Hunter          Check the packet length and execute a set of actions if greater than
60693b230b5SDonald Hunter          the specified packet length, else execute another set of actions.
60793b230b5SDonald Hunter      -
60893b230b5SDonald Hunter        name: add-mpls
60993b230b5SDonald Hunter        type: binary
61093b230b5SDonald Hunter        struct: ovs-action-add-mpls
61193b230b5SDonald Hunter        doc: |
61293b230b5SDonald Hunter          Push a new MPLS label stack entry at the start of the packet or at the
61393b230b5SDonald Hunter          start of the l3 header depending on the value of l3 tunnel flag in the
61493b230b5SDonald Hunter          tun_flags field of this OVS_ACTION_ATTR_ADD_MPLS argument.
61593b230b5SDonald Hunter      -
61693b230b5SDonald Hunter        name: dec-ttl
61793b230b5SDonald Hunter        type: nest
61893b230b5SDonald Hunter        nested-attributes: dec-ttl-attrs
61993b230b5SDonald Hunter  -
62093b230b5SDonald Hunter    name: tunnel-key-attrs
621*6907217aSDonald Hunter    enum-name: ovs-tunnel-key-attr
622*6907217aSDonald Hunter    name-prefix: ovs-tunnel-key-attr-
62393b230b5SDonald Hunter    attributes:
62493b230b5SDonald Hunter      -
62593b230b5SDonald Hunter        name: id
62693b230b5SDonald Hunter        type: u64
62793b230b5SDonald Hunter        byte-order: big-endian
62893b230b5SDonald Hunter        value: 0
62993b230b5SDonald Hunter      -
63093b230b5SDonald Hunter        name: ipv4-src
63193b230b5SDonald Hunter        type: u32
63293b230b5SDonald Hunter        byte-order: big-endian
63393b230b5SDonald Hunter      -
63493b230b5SDonald Hunter        name: ipv4-dst
63593b230b5SDonald Hunter        type: u32
63693b230b5SDonald Hunter        byte-order: big-endian
63793b230b5SDonald Hunter      -
63893b230b5SDonald Hunter        name: tos
63993b230b5SDonald Hunter        type: u8
64093b230b5SDonald Hunter      -
64193b230b5SDonald Hunter        name: ttl
64293b230b5SDonald Hunter        type: u8
64393b230b5SDonald Hunter      -
64493b230b5SDonald Hunter        name: dont-fragment
64593b230b5SDonald Hunter        type: flag
64693b230b5SDonald Hunter      -
64793b230b5SDonald Hunter        name: csum
64893b230b5SDonald Hunter        type: flag
64993b230b5SDonald Hunter      -
65093b230b5SDonald Hunter        name: oam
65193b230b5SDonald Hunter        type: flag
65293b230b5SDonald Hunter      -
65393b230b5SDonald Hunter        name: geneve-opts
65493b230b5SDonald Hunter        type: binary
65593b230b5SDonald Hunter        sub-type: u32
65693b230b5SDonald Hunter      -
65793b230b5SDonald Hunter        name: tp-src
65893b230b5SDonald Hunter        type: u16
65993b230b5SDonald Hunter        byte-order: big-endian
66093b230b5SDonald Hunter      -
66193b230b5SDonald Hunter        name: tp-dst
66293b230b5SDonald Hunter        type: u16
66393b230b5SDonald Hunter        byte-order: big-endian
66493b230b5SDonald Hunter      -
66593b230b5SDonald Hunter        name: vxlan-opts
66693b230b5SDonald Hunter        type: nest
66793b230b5SDonald Hunter        nested-attributes: vxlan-ext-attrs
66893b230b5SDonald Hunter      -
66993b230b5SDonald Hunter        name: ipv6-src
67093b230b5SDonald Hunter        type: binary
67193b230b5SDonald Hunter        doc: |
67293b230b5SDonald Hunter          struct in6_addr source IPv6 address
67393b230b5SDonald Hunter      -
67493b230b5SDonald Hunter        name: ipv6-dst
67593b230b5SDonald Hunter        type: binary
67693b230b5SDonald Hunter        doc: |
67793b230b5SDonald Hunter          struct in6_addr destination IPv6 address
67893b230b5SDonald Hunter      -
67993b230b5SDonald Hunter        name: pad
68093b230b5SDonald Hunter        type: binary
68193b230b5SDonald Hunter      -
68293b230b5SDonald Hunter        name: erspan-opts
68393b230b5SDonald Hunter        type: binary
68493b230b5SDonald Hunter        doc: |
68593b230b5SDonald Hunter          struct erspan_metadata
68693b230b5SDonald Hunter      -
68793b230b5SDonald Hunter        name: ipv4-info-bridge
68893b230b5SDonald Hunter        type: flag
68993b230b5SDonald Hunter  -
69093b230b5SDonald Hunter    name: check-pkt-len-attrs
691*6907217aSDonald Hunter    enum-name: ovs-check-pkt-len-attr
692*6907217aSDonald Hunter    name-prefix: ovs-check-pkt-len-attr-
69393b230b5SDonald Hunter    attributes:
69493b230b5SDonald Hunter      -
69593b230b5SDonald Hunter        name: pkt-len
69693b230b5SDonald Hunter        type: u16
69793b230b5SDonald Hunter      -
69893b230b5SDonald Hunter        name: actions-if-greater
69993b230b5SDonald Hunter        type: nest
70093b230b5SDonald Hunter        nested-attributes: action-attrs
70193b230b5SDonald Hunter      -
70293b230b5SDonald Hunter        name: actions-if-less-equal
70393b230b5SDonald Hunter        type: nest
70493b230b5SDonald Hunter        nested-attributes: action-attrs
70593b230b5SDonald Hunter  -
70693b230b5SDonald Hunter    name: sample-attrs
707*6907217aSDonald Hunter    enum-name: ovs-sample-attr
708*6907217aSDonald Hunter    name-prefix: ovs-sample-attr-
70993b230b5SDonald Hunter    attributes:
71093b230b5SDonald Hunter      -
71193b230b5SDonald Hunter        name: probability
71293b230b5SDonald Hunter        type: u32
71393b230b5SDonald Hunter      -
71493b230b5SDonald Hunter        name: actions
71593b230b5SDonald Hunter        type: nest
71693b230b5SDonald Hunter        nested-attributes: action-attrs
71793b230b5SDonald Hunter  -
71893b230b5SDonald Hunter    name: userspace-attrs
719*6907217aSDonald Hunter    enum-name: ovs-userspace-attr
720*6907217aSDonald Hunter    name-prefix: ovs-userspace-attr-
72193b230b5SDonald Hunter    attributes:
72293b230b5SDonald Hunter      -
72393b230b5SDonald Hunter        name: pid
72493b230b5SDonald Hunter        type: u32
72593b230b5SDonald Hunter      -
72693b230b5SDonald Hunter        name: userdata
72793b230b5SDonald Hunter        type: binary
72893b230b5SDonald Hunter      -
72993b230b5SDonald Hunter        name: egress-tun-port
73093b230b5SDonald Hunter        type: u32
73193b230b5SDonald Hunter      -
73293b230b5SDonald Hunter        name: actions
73393b230b5SDonald Hunter        type: flag
73493b230b5SDonald Hunter  -
73593b230b5SDonald Hunter    name: ovs-nsh-key-attrs
736*6907217aSDonald Hunter    enum-name: ovs-nsh-key-attr
737*6907217aSDonald Hunter    name-prefix: ovs-nsh-key-attr-
73893b230b5SDonald Hunter    attributes:
73993b230b5SDonald Hunter      -
74093b230b5SDonald Hunter        name: base
74193b230b5SDonald Hunter        type: binary
74293b230b5SDonald Hunter      -
74393b230b5SDonald Hunter        name: md1
74493b230b5SDonald Hunter        type: binary
74593b230b5SDonald Hunter      -
74693b230b5SDonald Hunter        name: md2
74793b230b5SDonald Hunter        type: binary
74893b230b5SDonald Hunter  -
74993b230b5SDonald Hunter    name: ct-attrs
750*6907217aSDonald Hunter    enum-name: ovs-ct-attr
751*6907217aSDonald Hunter    name-prefix: ovs-ct-attr-
75293b230b5SDonald Hunter    attributes:
75393b230b5SDonald Hunter      -
75493b230b5SDonald Hunter        name: commit
75593b230b5SDonald Hunter        type: flag
75693b230b5SDonald Hunter      -
75793b230b5SDonald Hunter        name: zone
75893b230b5SDonald Hunter        type: u16
75993b230b5SDonald Hunter      -
76093b230b5SDonald Hunter        name: mark
76193b230b5SDonald Hunter        type: binary
76293b230b5SDonald Hunter      -
76393b230b5SDonald Hunter        name: labels
76493b230b5SDonald Hunter        type: binary
76593b230b5SDonald Hunter      -
76693b230b5SDonald Hunter        name: helper
76793b230b5SDonald Hunter        type: string
76893b230b5SDonald Hunter      -
76993b230b5SDonald Hunter        name: nat
77093b230b5SDonald Hunter        type: nest
77193b230b5SDonald Hunter        nested-attributes: nat-attrs
77293b230b5SDonald Hunter      -
77393b230b5SDonald Hunter        name: force-commit
77493b230b5SDonald Hunter        type: flag
77593b230b5SDonald Hunter      -
77693b230b5SDonald Hunter        name: eventmask
77793b230b5SDonald Hunter        type: u32
77893b230b5SDonald Hunter      -
77993b230b5SDonald Hunter        name: timeout
78093b230b5SDonald Hunter        type: string
78193b230b5SDonald Hunter  -
78293b230b5SDonald Hunter    name: nat-attrs
783*6907217aSDonald Hunter    enum-name: ovs-nat-attr
784*6907217aSDonald Hunter    name-prefix: ovs-nat-attr-
78593b230b5SDonald Hunter    attributes:
78693b230b5SDonald Hunter      -
78793b230b5SDonald Hunter        name: src
788*6907217aSDonald Hunter        type: flag
78993b230b5SDonald Hunter      -
79093b230b5SDonald Hunter        name: dst
791*6907217aSDonald Hunter        type: flag
79293b230b5SDonald Hunter      -
79393b230b5SDonald Hunter        name: ip-min
79493b230b5SDonald Hunter        type: binary
79593b230b5SDonald Hunter      -
79693b230b5SDonald Hunter        name: ip-max
79793b230b5SDonald Hunter        type: binary
79893b230b5SDonald Hunter      -
79993b230b5SDonald Hunter        name: proto-min
800*6907217aSDonald Hunter        type: u16
80193b230b5SDonald Hunter      -
80293b230b5SDonald Hunter        name: proto-max
803*6907217aSDonald Hunter        type: u16
80493b230b5SDonald Hunter      -
80593b230b5SDonald Hunter        name: persistent
806*6907217aSDonald Hunter        type: flag
80793b230b5SDonald Hunter      -
80893b230b5SDonald Hunter        name: proto-hash
809*6907217aSDonald Hunter        type: flag
81093b230b5SDonald Hunter      -
81193b230b5SDonald Hunter        name: proto-random
812*6907217aSDonald Hunter        type: flag
81393b230b5SDonald Hunter  -
81493b230b5SDonald Hunter    name: dec-ttl-attrs
815*6907217aSDonald Hunter    enum-name: ovs-dec-ttl-attr
816*6907217aSDonald Hunter    name-prefix: ovs-dec-ttl-attr-
81793b230b5SDonald Hunter    attributes:
81893b230b5SDonald Hunter      -
81993b230b5SDonald Hunter        name: action
82093b230b5SDonald Hunter        type: nest
82193b230b5SDonald Hunter        nested-attributes: action-attrs
82293b230b5SDonald Hunter  -
82393b230b5SDonald Hunter    name: vxlan-ext-attrs
824*6907217aSDonald Hunter    enum-name: ovs-vxlan-ext-
825*6907217aSDonald Hunter    name-prefix: ovs-vxlan-ext-
82693b230b5SDonald Hunter    attributes:
82793b230b5SDonald Hunter      -
82893b230b5SDonald Hunter        name: gbp
82993b230b5SDonald Hunter        type: u32
83093b230b5SDonald Hunter
83193b230b5SDonald Hunteroperations:
832*6907217aSDonald Hunter  name-prefix: ovs-flow-cmd-
83393b230b5SDonald Hunter  fixed-header: ovs-header
83493b230b5SDonald Hunter  list:
83593b230b5SDonald Hunter    -
836*6907217aSDonald Hunter      name: get
83793b230b5SDonald Hunter      doc: Get / dump OVS flow configuration and state
83893b230b5SDonald Hunter      value: 3
83993b230b5SDonald Hunter      attribute-set: flow-attrs
84093b230b5SDonald Hunter      do: &flow-get-op
84193b230b5SDonald Hunter        request:
84293b230b5SDonald Hunter          attributes:
84393b230b5SDonald Hunter            - dp-ifindex
84493b230b5SDonald Hunter            - key
84593b230b5SDonald Hunter            - ufid
84693b230b5SDonald Hunter            - ufid-flags
84793b230b5SDonald Hunter        reply:
84893b230b5SDonald Hunter          attributes:
84993b230b5SDonald Hunter            - dp-ifindex
85093b230b5SDonald Hunter            - key
85193b230b5SDonald Hunter            - ufid
85293b230b5SDonald Hunter            - mask
85393b230b5SDonald Hunter            - stats
85493b230b5SDonald Hunter            - actions
85593b230b5SDonald Hunter      dump: *flow-get-op
856*6907217aSDonald Hunter    -
857*6907217aSDonald Hunter      name: new
858*6907217aSDonald Hunter      doc: Create OVS flow configuration in a data path
859*6907217aSDonald Hunter      value: 1
860*6907217aSDonald Hunter      attribute-set: flow-attrs
861*6907217aSDonald Hunter      do:
862*6907217aSDonald Hunter        request:
863*6907217aSDonald Hunter          attributes:
864*6907217aSDonald Hunter            - dp-ifindex
865*6907217aSDonald Hunter            - key
866*6907217aSDonald Hunter            - ufid
867*6907217aSDonald Hunter            - mask
868*6907217aSDonald Hunter            - actions
86993b230b5SDonald Hunter
87093b230b5SDonald Huntermcast-groups:
87193b230b5SDonald Hunter  list:
87293b230b5SDonald Hunter    -
87393b230b5SDonald Hunter      name: ovs_flow
874