Lines Matching +full:nested +full:- +full:attributes
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
4 * Copyright (c) 2007-2017 Nicira, Inc.
18 * 02110-1301, USA
28 * struct ovs_header - header for OVS Generic Netlink messages.
32 * Attributes following the header are specific to a particular OVS Generic
46 * - API users are expected to provide OVS_DP_ATTR_USER_FEATURES
63 * enum ovs_datapath_attr - attributes for %OVS_DP_* commands.
73 * @OVS_DP_ATTR_PER_CPU_PIDS: Per-cpu array of PIDs for upcalls when
82 * These attributes follow the &struct ovs_header within the Generic Netlink
95 * per-cpu dispatch mode
101 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
138 /* Allow per-cpu dispatch of upcalls */
152 /* Kernel-to-user notifications. */
161 * enum ovs_packet_attr - attributes for %OVS_PACKET_* commands.
168 * extracted from the packet as nested %OVS_KEY_ATTR_* attributes. This allows
172 * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes.
183 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes.
190 * These attributes follow the &struct ovs_header within the Generic Netlink
196 OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */
197 OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
199 OVS_PACKET_ATTR_EGRESS_TUN_KEY, /* Nested OVS_TUNNEL_KEY_ATTR_*
200 attributes. */
211 #define OVS_PACKET_ATTR_MAX (__OVS_PACKET_ATTR_MAX - 1)
237 #define OVS_VPORT_TYPE_MAX (__OVS_VPORT_TYPE_MAX - 1)
240 * enum ovs_vport_attr - attributes for %OVS_VPORT_* commands.
241 * @OVS_VPORT_ATTR_PORT_NO: 32-bit port number within datapath.
242 * @OVS_VPORT_ATTR_TYPE: 32-bit %OVS_VPORT_TYPE_* constant describing the type
245 * this is the name of the network device. Maximum length %IFNAMSIZ-1 bytes
247 * @OVS_VPORT_ATTR_OPTIONS: Vport-specific configuration information.
250 * received on this port. If this is a single-element array of value 0,
255 * These attributes follow the &struct ovs_header within the Generic Netlink
259 * %OVS_VPORT_ATTR_NAME attributes are required. %OVS_VPORT_ATTR_PORT_NO is
273 OVS_VPORT_ATTR_OPTIONS, /* nested attributes, varies by vport type */
284 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
287 * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands
288 * @OVS_VPORT_UPCALL_SUCCESS: 64-bit upcall success packets.
289 * @OVS_VPORT_UPCALL_FAIL: 64-bit upcall fail packets.
297 #define OVS_VPORT_UPCALL_ATTR_MAX (__OVS_VPORT_UPCALL_ATTR_MAX - 1)
305 #define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1)
308 /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels.
312 OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */
317 #define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1)
340 OVS_KEY_ATTR_ENCAP, /* Nested set of encapsulated attributes. */
341 OVS_KEY_ATTR_PRIORITY, /* u32 skb->priority */
355 OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */
367 OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */
370 OVS_KEY_ATTR_NSH, /* Nested set of ovs_nsh_key_* */
383 * For in-kernel use only.
389 #define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1)
404 OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested OVS_VXLAN_EXT_* */
413 #define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1)
416 * enum ovs_frag_type - IPv4 and IPv6 fragment type
431 #define OVS_FRAG_TYPE_MAX (__OVS_FRAG_TYPE_MAX - 1)
454 __be32 ipv6_label; /* 20-bits in least-significant bits. */
551 OVS_NSH_KEY_ATTR_MD2, /* variable-length octets for MD type 2. */
555 #define OVS_NSH_KEY_ATTR_MAX (__OVS_NSH_KEY_ATTR_MAX - 1)
572 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
573 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
576 * @OVS_FLOW_ATTR_ACTIONS: Nested %OVS_ACTION_ATTR_* attributes specifying
581 * an %OVS_FLOW_ATTR_ACTIONS without any nested attributes must be given.
585 * @OVS_FLOW_ATTR_TCP_FLAGS: An 8-bit value giving the OR'd value of all of the
588 * @OVS_FLOW_ATTR_USED: A 64-bit integer giving the time, in milliseconds on
593 * last-used time, accumulated TCP flags, and statistics for this flow.
595 * @OVS_FLOW_ATTR_MASK: Nested %OVS_KEY_ATTR_* attributes specifying the
601 * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique
606 * @OVS_FLOW_ATTR_UFID_FLAGS: A 32-bit value of OR'd %OVS_UFID_F_*
610 * These attributes follow the &struct ovs_header within the Generic Netlink
615 OVS_FLOW_ATTR_KEY, /* Sequence of OVS_KEY_ATTR_* attributes. */
616 OVS_FLOW_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
618 OVS_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */
621 OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
630 #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
633 * Omit attributes for notifications.
643 * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action.
644 * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with
649 * Actions are passed as nested attributes.
651 * Executes the specified actions with the given probability on a per-packet
657 OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
665 #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
679 * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action.
682 * @OVS_USERSPACE_ATTR_USERDATA: If present, its variable-length argument is
691 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
698 #define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
705 * struct ovs_action_push_mpls - %OVS_ACTION_ATTR_PUSH_MPLS action argument.
718 * struct ovs_action_add_mpls - %OVS_ACTION_ATTR_ADD_MPLS action
722 * @tun_flags: MPLS tunnel attributes.
744 * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument.
772 * struct ovs_action_hash - %OVS_ACTION_ATTR_HASH action argument.
782 * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action.
786 * retain the pre-commit connection state.
795 * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address
822 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */
826 * fine-grain timeout tuning. */
830 #define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
833 * enum ovs_nat_attr - Attributes for %OVS_CT_ATTR_NAT.
842 * connections. The following NAT attributes only apply for NEW
843 * (non-committed) connections, and they may be included only when the CT
868 #define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)
871 * struct ovs_action_push_eth - %OVS_ACTION_ATTR_PUSH_ETH action argument.
880 * enum ovs_check_pkt_len_attr - Attributes for %OVS_ACTION_ATTR_CHECK_PKT_LEN.
883 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER: Nested OVS_ACTION_ATTR_*
885 * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN.
886 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL - Nested OVS_ACTION_ATTR_*
888 * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN.
902 #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1)
918 * enum ovs_action_attr - Action types.
922 * @OVS_ACTION_ATTR_USERSPACE: Send packet to userspace according to nested
923 * %OVS_USERSPACE_ATTR_* attributes.
925 * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its
928 * nested %OVS_KEY_ATTR_* attribute specifies a header to modify, its value,
931 * left unchanged. The non-masked value bits must be passed in as zeroes.
938 * the nested %OVS_SAMPLE_ATTR_* attributes.
948 * @OVS_ACTION_ATTR_CT: Track the connection. Populate the conntrack-related
981 OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */
982 OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */
985 OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */
990 OVS_ACTION_ATTR_SET_MASKED, /* One nested OVS_KEY_ATTR_* including
994 OVS_ACTION_ATTR_CT, /* Nested OVS_CT_ATTR_* . */
999 OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */
1002 OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
1003 OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */
1005 OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */
1018 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
1041 OVS_METER_ATTR_BANDS, /* Nested attributes for meter bands. */
1050 #define OVS_METER_ATTR_MAX (__OVS_METER_ATTR_MAX - 1)
1061 #define OVS_BAND_ATTR_MAX (__OVS_BAND_ATTR_MAX - 1)
1069 #define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1)
1085 OVS_CT_LIMIT_ATTR_ZONE_LIMIT, /* Nested struct ovs_zone_limit. */
1089 #define OVS_CT_LIMIT_ATTR_MAX (__OVS_CT_LIMIT_ATTR_MAX - 1)
1091 #define OVS_ZONE_LIMIT_DEFAULT_ZONE -1
1101 OVS_DEC_TTL_ATTR_ACTION, /* Nested struct nlattr */
1105 #define OVS_DEC_TTL_ATTR_MAX (__OVS_DEC_TTL_ATTR_MAX - 1)