[ovs-dev] [netlink v5 61/61] datapath: s/ODPAT_/ODP_ACTION_ATTR_/ to fit new naming scheme.
Ben Pfaff
blp at nicira.com
Thu Jan 27 00:23:44 UTC 2011
Jesse suggested this naming scheme, so I'm adjusting existing names to
fit it.
Signed-off-by: Ben Pfaff <blp at nicira.com>
---
datapath/actions.c | 34 ++++++++--------
datapath/datapath.c | 66 +++++++++++++++---------------
include/openvswitch/datapath-protocol.h | 54 +++++++++++++------------
lib/dpif-netdev.c | 62 +++++++++++++++--------------
lib/dpif-provider.h | 11 +++--
lib/dpif.c | 14 +++---
lib/dpif.h | 4 +-
lib/odp-util.c | 66 +++++++++++++++---------------
ofproto/in-band.c | 4 +-
ofproto/ofproto-sflow.c | 6 +-
ofproto/ofproto.c | 48 ++++++++++++-----------
vswitchd/bridge.c | 8 ++--
12 files changed, 192 insertions(+), 185 deletions(-)
diff --git a/datapath/actions.c b/datapath/actions.c
index 1cb5f22..3223c65 100644
--- a/datapath/actions.c
+++ b/datapath/actions.c
@@ -243,7 +243,7 @@ static struct sk_buff *set_nw_addr(struct sk_buff *skb,
return NULL;
nh = ip_hdr(skb);
- nwaddr = nla_type(a) == ODPAT_SET_NW_SRC ? &nh->saddr : &nh->daddr;
+ nwaddr = nla_type(a) == ODP_ACTION_ATTR_SET_NW_SRC ? &nh->saddr : &nh->daddr;
check = get_l4_checksum(skb, key);
if (likely(check))
@@ -306,7 +306,7 @@ static struct sk_buff *set_tp_port(struct sk_buff *skb,
* supports those protocols.
*/
th = udp_hdr(skb);
- port = nla_type(a) == ODPAT_SET_TP_SRC ? &th->source : &th->dest;
+ port = nla_type(a) == ODP_ACTION_ATTR_SET_TP_SRC ? &th->source : &th->dest;
inet_proto_csum_replace2(check, skb, *port, nla_get_be16(a), 0);
*port = nla_get_be16(a);
@@ -399,11 +399,11 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb,
}
switch (nla_type(a)) {
- case ODPAT_OUTPUT:
+ case ODP_ACTION_ATTR_OUTPUT:
prev_port = nla_get_u32(a);
break;
- case ODPAT_CONTROLLER:
+ case ODP_ACTION_ATTR_CONTROLLER:
err = output_control(dp, skb, nla_get_u64(a), key);
if (err) {
kfree_skb(skb);
@@ -411,57 +411,57 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb,
}
break;
- case ODPAT_SET_TUNNEL:
+ case ODP_ACTION_ATTR_SET_TUNNEL:
OVS_CB(skb)->tun_id = nla_get_be64(a);
break;
- case ODPAT_SET_DL_TCI:
+ case ODP_ACTION_ATTR_SET_DL_TCI:
skb = modify_vlan_tci(dp, skb, key, a, rem);
if (IS_ERR(skb))
return PTR_ERR(skb);
break;
- case ODPAT_STRIP_VLAN:
+ case ODP_ACTION_ATTR_STRIP_VLAN:
skb = strip_vlan(skb);
break;
- case ODPAT_SET_DL_SRC:
+ case ODP_ACTION_ATTR_SET_DL_SRC:
skb = make_writable(skb, 0);
if (!skb)
return -ENOMEM;
memcpy(eth_hdr(skb)->h_source, nla_data(a), ETH_ALEN);
break;
- case ODPAT_SET_DL_DST:
+ case ODP_ACTION_ATTR_SET_DL_DST:
skb = make_writable(skb, 0);
if (!skb)
return -ENOMEM;
memcpy(eth_hdr(skb)->h_dest, nla_data(a), ETH_ALEN);
break;
- case ODPAT_SET_NW_SRC:
- case ODPAT_SET_NW_DST:
+ case ODP_ACTION_ATTR_SET_NW_SRC:
+ case ODP_ACTION_ATTR_SET_NW_DST:
skb = set_nw_addr(skb, key, a);
break;
- case ODPAT_SET_NW_TOS:
+ case ODP_ACTION_ATTR_SET_NW_TOS:
skb = set_nw_tos(skb, key, nla_get_u8(a));
break;
- case ODPAT_SET_TP_SRC:
- case ODPAT_SET_TP_DST:
+ case ODP_ACTION_ATTR_SET_TP_SRC:
+ case ODP_ACTION_ATTR_SET_TP_DST:
skb = set_tp_port(skb, key, a);
break;
- case ODPAT_SET_PRIORITY:
+ case ODP_ACTION_ATTR_SET_PRIORITY:
skb->priority = nla_get_u32(a);
break;
- case ODPAT_POP_PRIORITY:
+ case ODP_ACTION_ATTR_POP_PRIORITY:
skb->priority = priority;
break;
- case ODPAT_DROP_SPOOFED_ARP:
+ case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
if (unlikely(is_spoofed_arp(skb, key)))
goto exit;
break;
diff --git a/datapath/datapath.c b/datapath/datapath.c
index d5d6a18..5e6271f 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -570,58 +570,58 @@ static int validate_actions(const struct nlattr *attr)
int rem;
nla_for_each_nested(a, attr, rem) {
- static const u32 action_lens[ODPAT_MAX + 1] = {
- [ODPAT_OUTPUT] = 4,
- [ODPAT_CONTROLLER] = 8,
- [ODPAT_SET_DL_TCI] = 2,
- [ODPAT_STRIP_VLAN] = 0,
- [ODPAT_SET_DL_SRC] = ETH_ALEN,
- [ODPAT_SET_DL_DST] = ETH_ALEN,
- [ODPAT_SET_NW_SRC] = 4,
- [ODPAT_SET_NW_DST] = 4,
- [ODPAT_SET_NW_TOS] = 1,
- [ODPAT_SET_TP_SRC] = 2,
- [ODPAT_SET_TP_DST] = 2,
- [ODPAT_SET_TUNNEL] = 8,
- [ODPAT_SET_PRIORITY] = 4,
- [ODPAT_POP_PRIORITY] = 0,
- [ODPAT_DROP_SPOOFED_ARP] = 0,
+ static const u32 action_lens[ODP_ACTION_ATTR_MAX + 1] = {
+ [ODP_ACTION_ATTR_OUTPUT] = 4,
+ [ODP_ACTION_ATTR_CONTROLLER] = 8,
+ [ODP_ACTION_ATTR_SET_DL_TCI] = 2,
+ [ODP_ACTION_ATTR_STRIP_VLAN] = 0,
+ [ODP_ACTION_ATTR_SET_DL_SRC] = ETH_ALEN,
+ [ODP_ACTION_ATTR_SET_DL_DST] = ETH_ALEN,
+ [ODP_ACTION_ATTR_SET_NW_SRC] = 4,
+ [ODP_ACTION_ATTR_SET_NW_DST] = 4,
+ [ODP_ACTION_ATTR_SET_NW_TOS] = 1,
+ [ODP_ACTION_ATTR_SET_TP_SRC] = 2,
+ [ODP_ACTION_ATTR_SET_TP_DST] = 2,
+ [ODP_ACTION_ATTR_SET_TUNNEL] = 8,
+ [ODP_ACTION_ATTR_SET_PRIORITY] = 4,
+ [ODP_ACTION_ATTR_POP_PRIORITY] = 0,
+ [ODP_ACTION_ATTR_DROP_SPOOFED_ARP] = 0,
};
int type = nla_type(a);
- if (type > ODPAT_MAX || nla_len(a) != action_lens[type])
+ if (type > ODP_ACTION_ATTR_MAX || nla_len(a) != action_lens[type])
return -EINVAL;
switch (type) {
- case ODPAT_UNSPEC:
+ case ODP_ACTION_ATTR_UNSPEC:
return -EINVAL;
- case ODPAT_CONTROLLER:
- case ODPAT_STRIP_VLAN:
- case ODPAT_SET_DL_SRC:
- case ODPAT_SET_DL_DST:
- case ODPAT_SET_NW_SRC:
- case ODPAT_SET_NW_DST:
- case ODPAT_SET_TP_SRC:
- case ODPAT_SET_TP_DST:
- case ODPAT_SET_TUNNEL:
- case ODPAT_SET_PRIORITY:
- case ODPAT_POP_PRIORITY:
- case ODPAT_DROP_SPOOFED_ARP:
+ case ODP_ACTION_ATTR_CONTROLLER:
+ case ODP_ACTION_ATTR_STRIP_VLAN:
+ case ODP_ACTION_ATTR_SET_DL_SRC:
+ case ODP_ACTION_ATTR_SET_DL_DST:
+ case ODP_ACTION_ATTR_SET_NW_SRC:
+ case ODP_ACTION_ATTR_SET_NW_DST:
+ case ODP_ACTION_ATTR_SET_TP_SRC:
+ case ODP_ACTION_ATTR_SET_TP_DST:
+ case ODP_ACTION_ATTR_SET_TUNNEL:
+ case ODP_ACTION_ATTR_SET_PRIORITY:
+ case ODP_ACTION_ATTR_POP_PRIORITY:
+ case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
/* No validation needed. */
break;
- case ODPAT_OUTPUT:
+ case ODP_ACTION_ATTR_OUTPUT:
if (nla_get_u32(a) >= DP_MAX_PORTS)
return -EINVAL;
break;
- case ODPAT_SET_DL_TCI:
+ case ODP_ACTION_ATTR_SET_DL_TCI:
if (nla_get_be16(a) & htons(VLAN_CFI_MASK))
return -EINVAL;
break;
- case ODPAT_SET_NW_TOS:
+ case ODP_ACTION_ATTR_SET_NW_TOS:
if (nla_get_u8(a) & INET_ECN_MASK)
return -EINVAL;
break;
diff --git a/include/openvswitch/datapath-protocol.h b/include/openvswitch/datapath-protocol.h
index 083800c..1fb0bf9 100644
--- a/include/openvswitch/datapath-protocol.h
+++ b/include/openvswitch/datapath-protocol.h
@@ -161,7 +161,7 @@ enum odp_packet_cmd {
/* Kernel-to-user notifications. */
ODP_PACKET_CMD_MISS, /* Flow table miss. */
- ODP_PACKET_CMD_ACTION, /* ODPAT_CONTROLLER action. */
+ ODP_PACKET_CMD_ACTION, /* ODP_ACTION_ATTR_CONTROLLER action. */
ODP_PACKET_CMD_SAMPLE, /* Sampled packet. */
/* User commands. */
@@ -173,18 +173,20 @@ enum odp_packet_cmd {
* @ODP_PACKET_ATTR_PACKET: Present for all notifications. Contains the entire
* packet as received, from the start of the Ethernet header onward. For
* %ODP_PACKET_CMD_ACTION, %ODP_PACKET_ATTR_PACKET reflects changes made by
- * actions preceding %ODPAT_CONTROLLER, but %ODP_PACKET_ATTR_KEY is the flow
- * key extracted from the packet as originally received.
+ * actions preceding %ODP_ACTION_ATTR_CONTROLLER, but %ODP_PACKET_ATTR_KEY is
+ * the flow key extracted from the packet as originally received.
* @ODP_PACKET_ATTR_KEY: Present for all notifications. Contains the flow key
* extracted from the packet as nested %ODP_KEY_ATTR_* attributes. This allows
* userspace to adapt its flow setup strategy by comparing its notion of the
* flow key against the kernel's.
* @ODP_PACKET_ATTR_USERDATA: Present for an %ODP_PACKET_CMD_ACTION
- * notification if the %ODPAT_CONTROLLER action's argument was nonzero.
+ * notification if the %ODP_ACTION_ATTR_CONTROLLER, action's argument was
+ * nonzero.
* @ODP_PACKET_ATTR_SAMPLE_POOL: Present for %ODP_PACKET_CMD_SAMPLE. Contains
* the number of packets processed so far that were candidates for sampling.
* @ODP_PACKET_ATTR_ACTIONS: Present for %ODP_PACKET_CMD_SAMPLE. Contains a
- * copy of the actions applied to the packet, as nested %ODPAT_* attributes.
+ * copy of the actions applied to the packet, as nested %ODP_ACTION_ATTR_*
+ * attributes.
*
* These attributes follow the &struct odp_header within the Generic Netlink
* payload for %ODP_PACKET_* commands.
@@ -193,9 +195,9 @@ enum odp_packet_attr {
ODP_PACKET_ATTR_UNSPEC,
ODP_PACKET_ATTR_PACKET, /* Packet data. */
ODP_PACKET_ATTR_KEY, /* Nested ODP_KEY_ATTR_* attributes. */
- ODP_PACKET_ATTR_USERDATA, /* 64-bit data from ODPAT_CONTROLLER. */
+ ODP_PACKET_ATTR_USERDATA, /* u64 ODP_ACTION_ATTR_CONTROLLER arg. */
ODP_PACKET_ATTR_SAMPLE_POOL, /* # sampling candidate packets so far. */
- ODP_PACKET_ATTR_ACTIONS, /* Nested ODPAT_* attributes. */
+ ODP_PACKET_ATTR_ACTIONS, /* Nested ODP_ACTION_ATTR_* attributes. */
__ODP_PACKET_ATTR_MAX
};
@@ -385,7 +387,7 @@ struct odp_key_arp {
enum odp_flow_attr {
ODP_FLOW_ATTR_UNSPEC,
ODP_FLOW_ATTR_KEY, /* Sequence of ODP_KEY_ATTR_* attributes. */
- ODP_FLOW_ATTR_ACTIONS, /* Sequence of nested ODPAT_* attributes. */
+ ODP_FLOW_ATTR_ACTIONS, /* Nested ODP_ACTION_ATTR_* attributes. */
ODP_FLOW_ATTR_STATS, /* struct odp_flow_stats. */
ODP_FLOW_ATTR_TCP_FLAGS, /* 8-bit OR'd TCP flags. */
ODP_FLOW_ATTR_USED, /* u64 msecs last used in monotonic time. */
@@ -397,25 +399,25 @@ enum odp_flow_attr {
/* Action types. */
enum odp_action_type {
- ODPAT_UNSPEC,
- ODPAT_OUTPUT, /* Output to switch port. */
- ODPAT_CONTROLLER, /* Send copy to controller. */
- ODPAT_SET_DL_TCI, /* Set the 802.1q TCI value. */
- ODPAT_STRIP_VLAN, /* Strip the 802.1q header. */
- ODPAT_SET_DL_SRC, /* Ethernet source address. */
- ODPAT_SET_DL_DST, /* Ethernet destination address. */
- ODPAT_SET_NW_SRC, /* IPv4 source address. */
- ODPAT_SET_NW_DST, /* IPv4 destination address. */
- ODPAT_SET_NW_TOS, /* IP ToS/DSCP field (6 bits). */
- ODPAT_SET_TP_SRC, /* TCP/UDP source port. */
- ODPAT_SET_TP_DST, /* TCP/UDP destination port. */
- ODPAT_SET_TUNNEL, /* Set the encapsulating tunnel ID. */
- ODPAT_SET_PRIORITY, /* Set skb->priority. */
- ODPAT_POP_PRIORITY, /* Restore original skb->priority. */
- ODPAT_DROP_SPOOFED_ARP, /* Drop ARPs with spoofed source MAC. */
- __ODPAT_MAX
+ ODP_ACTION_ATTR_UNSPEC,
+ ODP_ACTION_ATTR_OUTPUT, /* Output to switch port. */
+ ODP_ACTION_ATTR_CONTROLLER, /* Send copy to controller. */
+ ODP_ACTION_ATTR_SET_DL_TCI, /* Set the 802.1q TCI value. */
+ ODP_ACTION_ATTR_STRIP_VLAN, /* Strip the 802.1q header. */
+ ODP_ACTION_ATTR_SET_DL_SRC, /* Ethernet source address. */
+ ODP_ACTION_ATTR_SET_DL_DST, /* Ethernet destination address. */
+ ODP_ACTION_ATTR_SET_NW_SRC, /* IPv4 source address. */
+ ODP_ACTION_ATTR_SET_NW_DST, /* IPv4 destination address. */
+ ODP_ACTION_ATTR_SET_NW_TOS, /* IP ToS/DSCP field (6 bits). */
+ ODP_ACTION_ATTR_SET_TP_SRC, /* TCP/UDP source port. */
+ ODP_ACTION_ATTR_SET_TP_DST, /* TCP/UDP destination port. */
+ ODP_ACTION_ATTR_SET_TUNNEL, /* Set the encapsulating tunnel ID. */
+ ODP_ACTION_ATTR_SET_PRIORITY, /* Set skb->priority. */
+ ODP_ACTION_ATTR_POP_PRIORITY, /* Restore original skb->priority. */
+ ODP_ACTION_ATTR_DROP_SPOOFED_ARP, /* Drop ARPs with spoofed source MAC. */
+ __ODP_ACTION_ATTR_MAX
};
-#define ODPAT_MAX (__ODPAT_MAX - 1)
+#define ODP_ACTION_ATTR_MAX (__ODP_ACTION_ATTR_MAX - 1)
#endif /* openvswitch/datapath-protocol.h */
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 5f72208..417ed6e 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -701,43 +701,43 @@ dpif_netdev_validate_actions(const struct nlattr *actions,
}
switch (type) {
- case ODPAT_OUTPUT:
+ case ODP_ACTION_ATTR_OUTPUT:
if (nl_attr_get_u32(a) >= MAX_PORTS) {
return EINVAL;
}
break;
- case ODPAT_CONTROLLER:
- case ODPAT_DROP_SPOOFED_ARP:
+ case ODP_ACTION_ATTR_CONTROLLER:
+ case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
break;
- case ODPAT_SET_DL_TCI:
+ case ODP_ACTION_ATTR_SET_DL_TCI:
*mutates = true;
if (nl_attr_get_be16(a) & htons(VLAN_CFI)) {
return EINVAL;
}
break;
- case ODPAT_SET_NW_TOS:
+ case ODP_ACTION_ATTR_SET_NW_TOS:
*mutates = true;
if (nl_attr_get_u8(a) & IP_ECN_MASK) {
return EINVAL;
}
break;
- case ODPAT_STRIP_VLAN:
- case ODPAT_SET_DL_SRC:
- case ODPAT_SET_DL_DST:
- case ODPAT_SET_NW_SRC:
- case ODPAT_SET_NW_DST:
- case ODPAT_SET_TP_SRC:
- case ODPAT_SET_TP_DST:
+ case ODP_ACTION_ATTR_STRIP_VLAN:
+ case ODP_ACTION_ATTR_SET_DL_SRC:
+ case ODP_ACTION_ATTR_SET_DL_DST:
+ case ODP_ACTION_ATTR_SET_NW_SRC:
+ case ODP_ACTION_ATTR_SET_NW_DST:
+ case ODP_ACTION_ATTR_SET_TP_SRC:
+ case ODP_ACTION_ATTR_SET_TP_DST:
*mutates = true;
break;
- case ODPAT_SET_TUNNEL:
- case ODPAT_SET_PRIORITY:
- case ODPAT_POP_PRIORITY:
+ case ODP_ACTION_ATTR_SET_TUNNEL:
+ case ODP_ACTION_ATTR_SET_PRIORITY:
+ case ODP_ACTION_ATTR_POP_PRIORITY:
default:
return EOPNOTSUPP;
}
@@ -1215,7 +1215,7 @@ dp_netdev_set_nw_addr(struct ofpbuf *packet, const struct flow *key,
uint16_t type = nl_attr_type(a);
uint32_t *field;
- field = type == ODPAT_SET_NW_SRC ? &nh->ip_src : &nh->ip_dst;
+ field = type == ODP_ACTION_ATTR_SET_NW_SRC ? &nh->ip_src : &nh->ip_dst;
if (key->nw_proto == IP_TYPE_TCP && packet->l7) {
struct tcp_header *th = packet->l4;
th->tcp_csum = recalc_csum32(th->tcp_csum, *field, ip);
@@ -1261,12 +1261,14 @@ dp_netdev_set_tp_port(struct ofpbuf *packet, const struct flow *key,
if (key->nw_proto == IPPROTO_TCP && packet->l7) {
struct tcp_header *th = packet->l4;
- field = type == ODPAT_SET_TP_SRC ? &th->tcp_src : &th->tcp_dst;
+ field = (type == ODP_ACTION_ATTR_SET_TP_SRC
+ ? &th->tcp_src : &th->tcp_dst);
th->tcp_csum = recalc_csum16(th->tcp_csum, *field, port);
*field = port;
} else if (key->nw_proto == IPPROTO_UDP && packet->l7) {
struct udp_header *uh = packet->l4;
- field = type == ODPAT_SET_TP_SRC ? &uh->udp_src : &uh->udp_dst;
+ field = (type == ODP_ACTION_ATTR_SET_TP_SRC
+ ? &uh->udp_src : &uh->udp_dst);
uh->udp_csum = recalc_csum16(uh->udp_csum, *field, port);
*field = port;
} else {
@@ -1357,46 +1359,46 @@ dp_netdev_execute_actions(struct dp_netdev *dp,
NL_ATTR_FOR_EACH_UNSAFE (a, left, actions, actions_len) {
switch (nl_attr_type(a)) {
- case ODPAT_OUTPUT:
+ case ODP_ACTION_ATTR_OUTPUT:
dp_netdev_output_port(dp, packet, nl_attr_get_u32(a));
break;
- case ODPAT_CONTROLLER:
+ case ODP_ACTION_ATTR_CONTROLLER:
dp_netdev_output_control(dp, packet, DPIF_UC_ACTION,
key, nl_attr_get_u64(a));
break;
- case ODPAT_SET_DL_TCI:
+ case ODP_ACTION_ATTR_SET_DL_TCI:
dp_netdev_set_dl_tci(packet, nl_attr_get_be16(a));
break;
- case ODPAT_STRIP_VLAN:
+ case ODP_ACTION_ATTR_STRIP_VLAN:
dp_netdev_strip_vlan(packet);
break;
- case ODPAT_SET_DL_SRC:
+ case ODP_ACTION_ATTR_SET_DL_SRC:
dp_netdev_set_dl_src(packet, nl_attr_get_unspec(a, ETH_ADDR_LEN));
break;
- case ODPAT_SET_DL_DST:
+ case ODP_ACTION_ATTR_SET_DL_DST:
dp_netdev_set_dl_dst(packet, nl_attr_get_unspec(a, ETH_ADDR_LEN));
break;
- case ODPAT_SET_NW_SRC:
- case ODPAT_SET_NW_DST:
+ case ODP_ACTION_ATTR_SET_NW_SRC:
+ case ODP_ACTION_ATTR_SET_NW_DST:
dp_netdev_set_nw_addr(packet, key, a);
break;
- case ODPAT_SET_NW_TOS:
+ case ODP_ACTION_ATTR_SET_NW_TOS:
dp_netdev_set_nw_tos(packet, key, nl_attr_get_u8(a));
break;
- case ODPAT_SET_TP_SRC:
- case ODPAT_SET_TP_DST:
+ case ODP_ACTION_ATTR_SET_TP_SRC:
+ case ODP_ACTION_ATTR_SET_TP_DST:
dp_netdev_set_tp_port(packet, key, a);
break;
- case ODPAT_DROP_SPOOFED_ARP:
+ case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
if (dp_netdev_is_spoofed_arp(packet, key)) {
return 0;
}
diff --git a/lib/dpif-provider.h b/lib/dpif-provider.h
index 61bc872..91074d5 100644
--- a/lib/dpif-provider.h
+++ b/lib/dpif-provider.h
@@ -211,7 +211,8 @@ struct dpif_class {
/* Adds or modifies a flow in 'dpif'. The flow is specified by the Netlink
* attributes with types ODP_KEY_ATTR_* in the 'key_len' bytes starting at
* 'key'. The associated actions are specified by the Netlink attributes
- * with types ODPAT_* in the 'actions_len' bytes starting at 'actions'.
+ * with types ODP_ACTION_ATTR_* in the 'actions_len' bytes starting at
+ * 'actions'.
*
* - If the flow's key does not exist in 'dpif', then the flow will be
* added if 'flags' includes DPIF_FP_CREATE. Otherwise the operation
@@ -264,9 +265,9 @@ struct dpif_class {
* On success, if 'key' and 'key_len' are nonnull then '*key' and
* '*key_len' must be set to Netlink attributes with types ODP_KEY_ATTR_*
* representing the dumped flow's key. If 'actions' and 'actions_len' are
- * nonnull then they should be set to Netlink attributes with types ODPAT_*
- * representing the dumped flow's actions. If 'stats' is nonnull then it
- * should be set to the dumped flow's statistics.
+ * nonnull then they should be set to Netlink attributes with types
+ * ODP_ACTION_ATTR_* representing the dumped flow's actions. If 'stats'
+ * is nonnull then it should be set to the dumped flow's statistics.
*
* All of the returned data is owned by 'dpif', not by the caller, and the
* caller must not modify or free it. 'dpif' must guarantee that it
@@ -318,7 +319,7 @@ struct dpif_class {
int (*set_sflow_probability)(struct dpif *dpif, uint32_t probability);
/* Translates OpenFlow queue ID 'queue_id' (in host byte order) into a
- * priority value for use in the ODPAT_SET_PRIORITY action in
+ * priority value for use in the ODP_ACTION_ATTR_SET_PRIORITY action in
* '*priority'. */
int (*queue_to_priority)(const struct dpif *dpif, uint32_t queue_id,
uint32_t *priority);
diff --git a/lib/dpif.c b/lib/dpif.c
index 3a705b9..a754613 100644
--- a/lib/dpif.c
+++ b/lib/dpif.c
@@ -741,7 +741,7 @@ dpif_flow_get(const struct dpif *dpif,
/* Adds or modifies a flow in 'dpif'. The flow is specified by the Netlink
* attributes with types ODP_KEY_ATTR_* in the 'key_len' bytes starting at
* 'key'. The associated actions are specified by the Netlink attributes with
- * types ODPAT_* in the 'actions_len' bytes starting at 'actions'.
+ * types ODP_ACTION_ATTR_* in the 'actions_len' bytes starting at 'actions'.
*
* - If the flow's key does not exist in 'dpif', then the flow will be added if
* 'flags' includes DPIF_FP_CREATE. Otherwise the operation will fail with
@@ -845,9 +845,9 @@ dpif_flow_dump_start(struct dpif_flow_dump *dump, const struct dpif *dpif)
* On success, if 'key' and 'key_len' are nonnull then '*key' and '*key_len'
* will be set to Netlink attributes with types ODP_KEY_ATTR_* representing the
* dumped flow's key. If 'actions' and 'actions_len' are nonnull then they are
- * set to Netlink attributes with types ODPAT_* representing the dumped flow's
- * actions. If 'stats' is nonnull then it will be set to the dumped flow's
- * statistics.
+ * set to Netlink attributes with types ODP_ACTION_ATTR_* representing the
+ * dumped flow's actions. If 'stats' is nonnull then it will be set to the
+ * dumped flow's statistics.
*
* All of the returned data is owned by 'dpif', not by the caller, and the
* caller must not modify or free it. 'dpif' guarantees that it remains
@@ -1087,9 +1087,9 @@ dpif_get_netflow_ids(const struct dpif *dpif,
}
/* Translates OpenFlow queue ID 'queue_id' (in host byte order) into a priority
- * value for use in the ODPAT_SET_PRIORITY action. On success, returns 0 and
- * stores the priority into '*priority'. On failure, returns a positive errno
- * value and stores 0 into '*priority'. */
+ * value for use in the ODP_ACTION_ATTR_SET_PRIORITY action. On success,
+ * returns 0 and stores the priority into '*priority'. On failure, returns a
+ * positive errno value and stores 0 into '*priority'. */
int
dpif_queue_to_priority(const struct dpif *dpif, uint32_t queue_id,
uint32_t *priority)
diff --git a/lib/dpif.h b/lib/dpif.h
index f5b7493..8872a2e 100644
--- a/lib/dpif.h
+++ b/lib/dpif.h
@@ -151,7 +151,7 @@ int dpif_execute(struct dpif *, const struct nlattr *actions,
enum dpif_upcall_type {
DPIF_UC_MISS, /* Miss in flow table. */
- DPIF_UC_ACTION, /* ODPAT_CONTROLLER action. */
+ DPIF_UC_ACTION, /* ODP_ACTION_ATTR_CONTROLLER action. */
DPIF_UC_SAMPLE, /* Packet sampling. */
DPIF_N_UC_TYPES
};
@@ -171,7 +171,7 @@ struct dpif_upcall {
size_t key_len; /* Length of 'key' in bytes. */
/* DPIF_UC_ACTION only. */
- uint64_t userdata; /* Argument to ODPAT_CONTROLLER. */
+ uint64_t userdata; /* Argument to ODP_ACTION_ATTR_CONTROLLER. */
/* DPIF_UC_SAMPLE only. */
uint32_t sample_pool; /* # of sampling candidate packets so far. */
diff --git a/lib/odp-util.c b/lib/odp-util.c
index 41acd6c..c70ea35 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -33,29 +33,29 @@
int
odp_action_len(uint16_t type)
{
- if (type > ODPAT_MAX) {
+ if (type > ODP_ACTION_ATTR_MAX) {
return -1;
}
switch ((enum odp_action_type) type) {
- case ODPAT_OUTPUT: return 4;
- case ODPAT_CONTROLLER: return 8;
- case ODPAT_SET_DL_TCI: return 2;
- case ODPAT_STRIP_VLAN: return 0;
- case ODPAT_SET_DL_SRC: return ETH_ADDR_LEN;
- case ODPAT_SET_DL_DST: return ETH_ADDR_LEN;
- case ODPAT_SET_NW_SRC: return 4;
- case ODPAT_SET_NW_DST: return 4;
- case ODPAT_SET_NW_TOS: return 1;
- case ODPAT_SET_TP_SRC: return 2;
- case ODPAT_SET_TP_DST: return 2;
- case ODPAT_SET_TUNNEL: return 8;
- case ODPAT_SET_PRIORITY: return 4;
- case ODPAT_POP_PRIORITY: return 0;
- case ODPAT_DROP_SPOOFED_ARP: return 0;
-
- case ODPAT_UNSPEC:
- case __ODPAT_MAX:
+ case ODP_ACTION_ATTR_OUTPUT: return 4;
+ case ODP_ACTION_ATTR_CONTROLLER: return 8;
+ case ODP_ACTION_ATTR_SET_DL_TCI: return 2;
+ case ODP_ACTION_ATTR_STRIP_VLAN: return 0;
+ case ODP_ACTION_ATTR_SET_DL_SRC: return ETH_ADDR_LEN;
+ case ODP_ACTION_ATTR_SET_DL_DST: return ETH_ADDR_LEN;
+ case ODP_ACTION_ATTR_SET_NW_SRC: return 4;
+ case ODP_ACTION_ATTR_SET_NW_DST: return 4;
+ case ODP_ACTION_ATTR_SET_NW_TOS: return 1;
+ case ODP_ACTION_ATTR_SET_TP_SRC: return 2;
+ case ODP_ACTION_ATTR_SET_TP_DST: return 2;
+ case ODP_ACTION_ATTR_SET_TUNNEL: return 8;
+ case ODP_ACTION_ATTR_SET_PRIORITY: return 4;
+ case ODP_ACTION_ATTR_POP_PRIORITY: return 0;
+ case ODP_ACTION_ATTR_DROP_SPOOFED_ARP: return 0;
+
+ case ODP_ACTION_ATTR_UNSPEC:
+ case __ODP_ACTION_ATTR_MAX:
return -1;
}
@@ -95,56 +95,56 @@ format_odp_action(struct ds *ds, const struct nlattr *a)
}
switch (nl_attr_type(a)) {
- case ODPAT_OUTPUT:
+ case ODP_ACTION_ATTR_OUTPUT:
ds_put_format(ds, "%"PRIu16, nl_attr_get_u32(a));
break;
- case ODPAT_CONTROLLER:
+ case ODP_ACTION_ATTR_CONTROLLER:
ds_put_format(ds, "ctl(%"PRIu64")", nl_attr_get_u64(a));
break;
- case ODPAT_SET_TUNNEL:
+ case ODP_ACTION_ATTR_SET_TUNNEL:
ds_put_format(ds, "set_tunnel(%#"PRIx64")",
ntohll(nl_attr_get_be64(a)));
break;
- case ODPAT_SET_DL_TCI:
+ case ODP_ACTION_ATTR_SET_DL_TCI:
ds_put_format(ds, "set_tci(vid=%"PRIu16",pcp=%d)",
vlan_tci_to_vid(nl_attr_get_be16(a)),
vlan_tci_to_pcp(nl_attr_get_be16(a)));
break;
- case ODPAT_STRIP_VLAN:
+ case ODP_ACTION_ATTR_STRIP_VLAN:
ds_put_format(ds, "strip_vlan");
break;
- case ODPAT_SET_DL_SRC:
+ case ODP_ACTION_ATTR_SET_DL_SRC:
eth = nl_attr_get_unspec(a, ETH_ADDR_LEN);
ds_put_format(ds, "set_dl_src("ETH_ADDR_FMT")", ETH_ADDR_ARGS(eth));
break;
- case ODPAT_SET_DL_DST:
+ case ODP_ACTION_ATTR_SET_DL_DST:
eth = nl_attr_get_unspec(a, ETH_ADDR_LEN);
ds_put_format(ds, "set_dl_dst("ETH_ADDR_FMT")", ETH_ADDR_ARGS(eth));
break;
- case ODPAT_SET_NW_SRC:
+ case ODP_ACTION_ATTR_SET_NW_SRC:
ip = nl_attr_get_be32(a);
ds_put_format(ds, "set_nw_src("IP_FMT")", IP_ARGS(&ip));
break;
- case ODPAT_SET_NW_DST:
+ case ODP_ACTION_ATTR_SET_NW_DST:
ip = nl_attr_get_be32(a);
ds_put_format(ds, "set_nw_dst("IP_FMT")", IP_ARGS(&ip));
break;
- case ODPAT_SET_NW_TOS:
+ case ODP_ACTION_ATTR_SET_NW_TOS:
ds_put_format(ds, "set_nw_tos(%"PRIu8")", nl_attr_get_u8(a));
break;
- case ODPAT_SET_TP_SRC:
+ case ODP_ACTION_ATTR_SET_TP_SRC:
ds_put_format(ds, "set_tp_src(%"PRIu16")", ntohs(nl_attr_get_be16(a)));
break;
- case ODPAT_SET_TP_DST:
+ case ODP_ACTION_ATTR_SET_TP_DST:
ds_put_format(ds, "set_tp_dst(%"PRIu16")", ntohs(nl_attr_get_be16(a)));
break;
- case ODPAT_SET_PRIORITY:
+ case ODP_ACTION_ATTR_SET_PRIORITY:
ds_put_format(ds, "set_priority(%#"PRIx32")", nl_attr_get_u32(a));
break;
- case ODPAT_POP_PRIORITY:
+ case ODP_ACTION_ATTR_POP_PRIORITY:
ds_put_cstr(ds, "pop_priority");
break;
- case ODPAT_DROP_SPOOFED_ARP:
+ case ODP_ACTION_ATTR_DROP_SPOOFED_ARP:
ds_put_cstr(ds, "drop_spoofed_arp");
break;
default:
diff --git a/ofproto/in-band.c b/ofproto/in-band.c
index 6623aca..94d2cb5 100644
--- a/ofproto/in-band.c
+++ b/ofproto/in-band.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2009, 2010 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -445,7 +445,7 @@ in_band_rule_check(struct in_band *in_band, const struct flow *flow,
unsigned int left;
NL_ATTR_FOR_EACH_UNSAFE (a, left, actions, actions_len) {
- if (nl_attr_type(a) == ODPAT_OUTPUT
+ if (nl_attr_type(a) == ODP_ACTION_ATTR_OUTPUT
&& nl_attr_get_u32(a) == ODPP_LOCAL) {
return true;
}
diff --git a/ofproto/ofproto-sflow.c b/ofproto/ofproto-sflow.c
index b3206c1..05794e1 100644
--- a/ofproto/ofproto-sflow.c
+++ b/ofproto/ofproto-sflow.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2010 Nicira Networks.
+ * Copyright (c) 2009, 2010, 2011 Nicira Networks.
* Copyright (c) 2009 InMon Corp.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -536,13 +536,13 @@ ofproto_sflow_received(struct ofproto_sflow *os,
ovs_be16 tci;
switch (nl_attr_type(a)) {
- case ODPAT_OUTPUT:
+ case ODP_ACTION_ATTR_OUTPUT:
fs.output = ofproto_sflow_odp_port_to_ifindex(os,
nl_attr_get_u32(a));
n_outputs++;
break;
- case ODPAT_SET_DL_TCI:
+ case ODP_ACTION_ATTR_SET_DL_TCI:
tci = nl_attr_get_be16(a);
switchElem.flowType.sw.dst_vlan = vlan_tci_to_vid(tci);
switchElem.flowType.sw.dst_priority = vlan_tci_to_pcp(tci);
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index 76878fc..67ce714 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -138,7 +138,7 @@ struct action_xlate_ctx {
int recurse; /* Recursion level, via xlate_table_action. */
int last_pop_priority; /* Offset in 'odp_actions' just past most
- * recently added ODPAT_SET_PRIORITY. */
+ * recent ODP_ACTION_ATTR_SET_PRIORITY. */
};
static void action_xlate_ctx_init(struct action_xlate_ctx *,
@@ -2088,7 +2088,7 @@ execute_odp_actions(struct ofproto *ofproto, const struct flow *flow,
struct ofpbuf *packet)
{
if (actions_len == NLA_ALIGN(NLA_HDRLEN + sizeof(uint64_t))
- && odp_actions->nla_type == ODPAT_CONTROLLER) {
+ && odp_actions->nla_type == ODP_ACTION_ATTR_CONTROLLER) {
/* As an optimization, avoid a round-trip from userspace to kernel to
* userspace. This also avoids possibly filling up kernel packet
* buffers along the way. */
@@ -2682,7 +2682,7 @@ add_output_action(struct action_xlate_ctx *ctx, uint16_t port)
*/
}
- nl_msg_put_u32(ctx->odp_actions, ODPAT_OUTPUT, port);
+ nl_msg_put_u32(ctx->odp_actions, ODP_ACTION_ATTR_OUTPUT, port);
ctx->nf_output_iface = port;
}
@@ -2733,7 +2733,7 @@ flood_packets(struct ofproto *ofproto, uint16_t odp_in_port, uint32_t mask,
HMAP_FOR_EACH (ofport, hmap_node, &ofproto->ports) {
uint16_t odp_port = ofport->odp_port;
if (odp_port != odp_in_port && !(ofport->opp.config & mask)) {
- nl_msg_put_u32(odp_actions, ODPAT_OUTPUT, odp_port);
+ nl_msg_put_u32(odp_actions, ODP_ACTION_ATTR_OUTPUT, odp_port);
}
}
*nf_output_iface = NF_OUT_FLOOD;
@@ -2773,7 +2773,7 @@ xlate_output_action__(struct action_xlate_ctx *ctx,
&ctx->nf_output_iface, ctx->odp_actions);
break;
case OFPP_CONTROLLER:
- nl_msg_put_u64(ctx->odp_actions, ODPAT_CONTROLLER, max_len);
+ nl_msg_put_u64(ctx->odp_actions, ODP_ACTION_ATTR_CONTROLLER, max_len);
break;
case OFPP_LOCAL:
add_output_action(ctx, ODPP_LOCAL);
@@ -2820,7 +2820,7 @@ static void
add_pop_action(struct action_xlate_ctx *ctx)
{
if (ctx->odp_actions->size != ctx->last_pop_priority) {
- nl_msg_put_flag(ctx->odp_actions, ODPAT_POP_PRIORITY);
+ nl_msg_put_flag(ctx->odp_actions, ODP_ACTION_ATTR_POP_PRIORITY);
ctx->last_pop_priority = ctx->odp_actions->size;
}
}
@@ -2851,7 +2851,7 @@ xlate_enqueue_action(struct action_xlate_ctx *ctx,
/* Add ODP actions. */
remove_pop_action(ctx);
- nl_msg_put_u32(ctx->odp_actions, ODPAT_SET_PRIORITY, priority);
+ nl_msg_put_u32(ctx->odp_actions, ODP_ACTION_ATTR_SET_PRIORITY, priority);
add_output_action(ctx, odp_port);
add_pop_action(ctx);
@@ -2879,7 +2879,7 @@ xlate_set_queue_action(struct action_xlate_ctx *ctx,
}
remove_pop_action(ctx);
- nl_msg_put_u32(ctx->odp_actions, ODPAT_SET_PRIORITY, priority);
+ nl_msg_put_u32(ctx->odp_actions, ODP_ACTION_ATTR_SET_PRIORITY, priority);
}
static void
@@ -2887,9 +2887,9 @@ xlate_set_dl_tci(struct action_xlate_ctx *ctx)
{
ovs_be16 tci = ctx->flow.vlan_tci;
if (!(tci & htons(VLAN_CFI))) {
- nl_msg_put_flag(ctx->odp_actions, ODPAT_STRIP_VLAN);
+ nl_msg_put_flag(ctx->odp_actions, ODP_ACTION_ATTR_STRIP_VLAN);
} else {
- nl_msg_put_be16(ctx->odp_actions, ODPAT_SET_DL_TCI,
+ nl_msg_put_be16(ctx->odp_actions, ODP_ACTION_ATTR_SET_DL_TCI,
tci & ~htons(VLAN_CFI));
}
}
@@ -2915,7 +2915,8 @@ update_reg_state(struct action_xlate_ctx *ctx,
xlate_set_dl_tci(ctx);
}
if (ctx->flow.tun_id != state->tun_id) {
- nl_msg_put_be64(ctx->odp_actions, ODPAT_SET_TUNNEL, ctx->flow.tun_id);
+ nl_msg_put_be64(ctx->odp_actions,
+ ODP_ACTION_ATTR_SET_TUNNEL, ctx->flow.tun_id);
}
}
@@ -2941,13 +2942,14 @@ xlate_nicira_action(struct action_xlate_ctx *ctx,
case NXAST_SET_TUNNEL:
nast = (const struct nx_action_set_tunnel *) nah;
tun_id = htonll(ntohl(nast->tun_id));
- nl_msg_put_be64(ctx->odp_actions, ODPAT_SET_TUNNEL, tun_id);
+ nl_msg_put_be64(ctx->odp_actions, ODP_ACTION_ATTR_SET_TUNNEL, tun_id);
ctx->flow.tun_id = tun_id;
break;
case NXAST_DROP_SPOOFED_ARP:
if (ctx->flow.dl_type == htons(ETH_TYPE_ARP)) {
- nl_msg_put_flag(ctx->odp_actions, ODPAT_DROP_SPOOFED_ARP);
+ nl_msg_put_flag(ctx->odp_actions,
+ ODP_ACTION_ATTR_DROP_SPOOFED_ARP);
}
break;
@@ -2980,7 +2982,7 @@ xlate_nicira_action(struct action_xlate_ctx *ctx,
case NXAST_SET_TUNNEL64:
tun_id = ((const struct nx_action_set_tunnel64 *) nah)->tun_id;
- nl_msg_put_be64(ctx->odp_actions, ODPAT_SET_TUNNEL, tun_id);
+ nl_msg_put_be64(ctx->odp_actions, ODP_ACTION_ATTR_SET_TUNNEL, tun_id);
ctx->flow.tun_id = tun_id;
break;
@@ -3044,44 +3046,44 @@ do_xlate_actions(const union ofp_action *in, size_t n_in,
case OFPAT_SET_DL_SRC:
oada = ((struct ofp_action_dl_addr *) ia);
- nl_msg_put_unspec(ctx->odp_actions, ODPAT_SET_DL_SRC,
+ nl_msg_put_unspec(ctx->odp_actions, ODP_ACTION_ATTR_SET_DL_SRC,
oada->dl_addr, ETH_ADDR_LEN);
memcpy(ctx->flow.dl_src, oada->dl_addr, ETH_ADDR_LEN);
break;
case OFPAT_SET_DL_DST:
oada = ((struct ofp_action_dl_addr *) ia);
- nl_msg_put_unspec(ctx->odp_actions, ODPAT_SET_DL_DST,
+ nl_msg_put_unspec(ctx->odp_actions, ODP_ACTION_ATTR_SET_DL_DST,
oada->dl_addr, ETH_ADDR_LEN);
memcpy(ctx->flow.dl_dst, oada->dl_addr, ETH_ADDR_LEN);
break;
case OFPAT_SET_NW_SRC:
- nl_msg_put_be32(ctx->odp_actions, ODPAT_SET_NW_SRC,
+ nl_msg_put_be32(ctx->odp_actions, ODP_ACTION_ATTR_SET_NW_SRC,
ia->nw_addr.nw_addr);
ctx->flow.nw_src = ia->nw_addr.nw_addr;
break;
case OFPAT_SET_NW_DST:
- nl_msg_put_be32(ctx->odp_actions, ODPAT_SET_NW_DST,
+ nl_msg_put_be32(ctx->odp_actions, ODP_ACTION_ATTR_SET_NW_DST,
ia->nw_addr.nw_addr);
ctx->flow.nw_dst = ia->nw_addr.nw_addr;
break;
case OFPAT_SET_NW_TOS:
- nl_msg_put_u8(ctx->odp_actions, ODPAT_SET_NW_TOS,
+ nl_msg_put_u8(ctx->odp_actions, ODP_ACTION_ATTR_SET_NW_TOS,
ia->nw_tos.nw_tos);
ctx->flow.nw_tos = ia->nw_tos.nw_tos;
break;
case OFPAT_SET_TP_SRC:
- nl_msg_put_be16(ctx->odp_actions, ODPAT_SET_TP_SRC,
+ nl_msg_put_be16(ctx->odp_actions, ODP_ACTION_ATTR_SET_TP_SRC,
ia->tp_port.tp_port);
ctx->flow.tp_src = ia->tp_port.tp_port;
break;
case OFPAT_SET_TP_DST:
- nl_msg_put_be16(ctx->odp_actions, ODPAT_SET_TP_DST,
+ nl_msg_put_be16(ctx->odp_actions, ODP_ACTION_ATTR_SET_TP_DST,
ia->tp_port.tp_port);
ctx->flow.tp_dst = ia->tp_port.tp_port;
break;
@@ -4374,7 +4376,7 @@ handle_miss_upcall(struct ofproto *p, struct dpif_upcall *upcall)
struct ofpbuf odp_actions;
ofpbuf_init(&odp_actions, 32);
- nl_msg_put_u32(&odp_actions, ODPAT_OUTPUT, ODPP_LOCAL);
+ nl_msg_put_u32(&odp_actions, ODP_ACTION_ATTR_OUTPUT, ODPP_LOCAL);
dpif_execute(p->dpif, odp_actions.data, odp_actions.size,
upcall->packet);
ofpbuf_uninit(&odp_actions);
@@ -5112,7 +5114,7 @@ default_normal_ofhook_cb(const struct flow *flow, const struct ofpbuf *packet,
flood_packets(ofproto, flow->in_port, OFPPC_NO_FLOOD,
nf_output_iface, odp_actions);
} else if (out_port != flow->in_port) {
- nl_msg_put_u32(odp_actions, ODPAT_OUTPUT, out_port);
+ nl_msg_put_u32(odp_actions, ODP_ACTION_ATTR_OUTPUT, out_port);
*nf_output_iface = out_port;
} else {
/* Drop. */
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index 463a8b5..fab6194 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -2631,16 +2631,16 @@ compose_actions(struct bridge *br, const struct flow *flow, uint16_t vlan,
const struct dst *dst = &set.dsts[i];
if (dst->vlan != cur_vlan) {
if (dst->vlan == OFP_VLAN_NONE) {
- nl_msg_put_flag(actions, ODPAT_STRIP_VLAN);
+ nl_msg_put_flag(actions, ODP_ACTION_ATTR_STRIP_VLAN);
} else {
ovs_be16 tci;
tci = htons(dst->vlan & VLAN_VID_MASK);
tci |= flow->vlan_tci & htons(VLAN_PCP_MASK);
- nl_msg_put_be16(actions, ODPAT_SET_DL_TCI, tci);
+ nl_msg_put_be16(actions, ODP_ACTION_ATTR_SET_DL_TCI, tci);
}
cur_vlan = dst->vlan;
}
- nl_msg_put_u32(actions, ODPAT_OUTPUT, dst->dp_ifidx);
+ nl_msg_put_u32(actions, ODP_ACTION_ATTR_OUTPUT, dst->dp_ifidx);
}
dst_set_free(&set);
}
@@ -2934,7 +2934,7 @@ bridge_account_flow_ofhook_cb(const struct flow *flow, tag_type tags,
return;
}
NL_ATTR_FOR_EACH_UNSAFE (a, left, actions, actions_len) {
- if (nl_attr_type(a) == ODPAT_OUTPUT) {
+ if (nl_attr_type(a) == ODP_ACTION_ATTR_OUTPUT) {
struct port *out_port = port_from_dp_ifidx(br, nl_attr_get_u32(a));
if (out_port && out_port->n_ifaces >= 2 &&
out_port->bond_mode == BM_SLB) {
--
1.7.1
More information about the dev
mailing list