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;
}
}
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:
q_key = nl_attr_get(a);
ds_put_cstr(ds, "vlan(");
if (q_key->q_tpid != htons(ETH_TYPE_VLAN)) {
- ds_put_format(ds, "tpid=%#"PRIx16",", ntohs(q_key->q_tpid));
+ ds_put_format(ds, "tpid=0x%04"PRIx16",", ntohs(q_key->q_tpid));
}
ds_put_format(ds, "vid%"PRIu16",pcp%d)",
vlan_tci_to_vid(q_key->q_tci),
break;
case ODP_KEY_ATTR_ETHERTYPE:
- ds_put_format(ds, "eth_type(%#04"PRIx16")",
+ ds_put_format(ds, "eth_type(0x%04"PRIx16")",
ntohs(nl_attr_get_be16(a)));
break;
ipv4_key->ipv4_proto = flow->nw_proto;
ipv4_key->ipv4_tos = flow->nw_tos;
- if (flow->nw_proto == IP_TYPE_TCP) {
+ if (flow->nw_proto == IPPROTO_TCP) {
struct odp_key_tcp *tcp_key;
tcp_key = nl_msg_put_unspec_uninit(buf, ODP_KEY_ATTR_TCP,
sizeof *tcp_key);
tcp_key->tcp_src = flow->tp_src;
tcp_key->tcp_dst = flow->tp_dst;
- } else if (flow->nw_proto == IP_TYPE_UDP) {
+ } else if (flow->nw_proto == IPPROTO_UDP) {
struct odp_key_udp *udp_key;
udp_key = nl_msg_put_unspec_uninit(buf, ODP_KEY_ATTR_UDP,
sizeof *udp_key);
udp_key->udp_src = flow->tp_src;
udp_key->udp_dst = flow->tp_dst;
- } else if (flow->nw_proto == IP_TYPE_ICMP) {
+ } else if (flow->nw_proto == IPPROTO_ICMP) {
struct odp_key_icmp *icmp_key;
icmp_key = nl_msg_put_unspec_uninit(buf, ODP_KEY_ATTR_ICMP,
break;
case TRANSITION(ODP_KEY_ATTR_IPV4, ODP_KEY_ATTR_TCP):
- if (flow->nw_proto != IP_TYPE_TCP) {
+ if (flow->nw_proto != IPPROTO_TCP) {
return EINVAL;
}
tcp_key = nl_attr_get(nla);
break;
case TRANSITION(ODP_KEY_ATTR_IPV4, ODP_KEY_ATTR_UDP):
- if (flow->nw_proto != IP_TYPE_UDP) {
+ if (flow->nw_proto != IPPROTO_UDP) {
return EINVAL;
}
udp_key = nl_attr_get(nla);
break;
case TRANSITION(ODP_KEY_ATTR_IPV4, ODP_KEY_ATTR_ICMP):
- if (flow->nw_proto != IP_TYPE_ICMP) {
+ if (flow->nw_proto != IPPROTO_ICMP) {
return EINVAL;
}
icmp_key = nl_attr_get(nla);
return 0;
case ODP_KEY_ATTR_IPV4:
- if (flow->nw_proto == IP_TYPE_TCP
- || flow->nw_proto == IP_TYPE_UDP
- || flow->nw_proto == IP_TYPE_ICMP) {
+ if (flow->nw_proto == IPPROTO_TCP
+ || flow->nw_proto == IPPROTO_UDP
+ || flow->nw_proto == IPPROTO_ICMP) {
return EINVAL;
}
return 0;