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
652 * basis. Nested actions will be able to access the probability value of the
658 OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
666 #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
680 * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action.
683 * @OVS_USERSPACE_ATTR_USERDATA: If present, its variable-length argument is
692 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
699 #define OVS_USERSPACE_ATTR_MAX (__OVS_USERSPACE_ATTR_MAX - 1)
706 * struct ovs_action_push_mpls - %OVS_ACTION_ATTR_PUSH_MPLS action argument.
719 * struct ovs_action_add_mpls - %OVS_ACTION_ATTR_ADD_MPLS action
723 * @tun_flags: MPLS tunnel attributes.
745 * struct ovs_action_push_vlan - %OVS_ACTION_ATTR_PUSH_VLAN action argument.
773 * struct ovs_action_hash - %OVS_ACTION_ATTR_HASH action argument.
783 * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action.
787 * retain the pre-commit connection state.
796 * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address
823 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */
827 * fine-grain timeout tuning. */
831 #define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
834 * enum ovs_nat_attr - Attributes for %OVS_CT_ATTR_NAT.
843 * connections. The following NAT attributes only apply for NEW
844 * (non-committed) connections, and they may be included only when the CT
869 #define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)
872 * struct ovs_action_push_eth - %OVS_ACTION_ATTR_PUSH_ETH action argument.
881 * enum ovs_check_pkt_len_attr - Attributes for %OVS_ACTION_ATTR_CHECK_PKT_LEN.
884 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER: Nested OVS_ACTION_ATTR_*
886 * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN.
887 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL - Nested OVS_ACTION_ATTR_*
889 * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN.
903 #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1)
920 * enum ovs_psample_attr - Attributes for %OVS_ACTION_ATTR_PSAMPLE
923 * @OVS_PSAMPLE_ATTR_GROUP: 32-bit number to identify the source of the
925 * @OVS_PSAMPLE_ATTR_COOKIE: An optional variable-length binary cookie that
926 * contains user-defined metadata. The maximum length is
941 #define OVS_PSAMPLE_ATTR_MAX (__OVS_PSAMPLE_ATTR_MAX - 1)
944 * enum ovs_action_attr - Action types.
948 * @OVS_ACTION_ATTR_USERSPACE: Send packet to userspace according to nested
949 * %OVS_USERSPACE_ATTR_* attributes.
951 * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its
954 * nested %OVS_KEY_ATTR_* attribute specifies a header to modify, its value,
957 * left unchanged. The non-masked value bits must be passed in as zeroes.
964 * the nested %OVS_SAMPLE_ATTR_* attributes.
974 * @OVS_ACTION_ATTR_CT: Track the connection. Populate the conntrack-related
1009 OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */
1010 OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */
1013 OVS_ACTION_ATTR_SAMPLE, /* Nested OVS_SAMPLE_ATTR_*. */
1018 OVS_ACTION_ATTR_SET_MASKED, /* One nested OVS_KEY_ATTR_* including
1022 OVS_ACTION_ATTR_CT, /* Nested OVS_CT_ATTR_* . */
1027 OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */
1030 OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
1031 OVS_ACTION_ATTR_CHECK_PKT_LEN, /* Nested OVS_CHECK_PKT_LEN_ATTR_*. */
1033 OVS_ACTION_ATTR_DEC_TTL, /* Nested OVS_DEC_TTL_ATTR_*. */
1035 OVS_ACTION_ATTR_PSAMPLE, /* Nested OVS_PSAMPLE_ATTR_*. */
1047 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
1070 OVS_METER_ATTR_BANDS, /* Nested attributes for meter bands. */
1079 #define OVS_METER_ATTR_MAX (__OVS_METER_ATTR_MAX - 1)
1090 #define OVS_BAND_ATTR_MAX (__OVS_BAND_ATTR_MAX - 1)
1098 #define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1)
1114 OVS_CT_LIMIT_ATTR_ZONE_LIMIT, /* Nested struct ovs_zone_limit. */
1118 #define OVS_CT_LIMIT_ATTR_MAX (__OVS_CT_LIMIT_ATTR_MAX - 1)
1120 #define OVS_ZONE_LIMIT_DEFAULT_ZONE -1
1130 OVS_DEC_TTL_ATTR_ACTION, /* Nested struct nlattr */
1134 #define OVS_DEC_TTL_ATTR_MAX (__OVS_DEC_TTL_ATTR_MAX - 1)