X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Factions.c;h=3223c65bd66b75680caf790ac470ff9f498e6d58;hb=f696f12fbe84f49d650f48c45ce1a24b94547ad2;hp=c61e5ff0523595bb288ea4bb48274224c7ebe6ec;hpb=856081f683d3e7d5b5fa07af4233d285eb205c47;p=openvswitch diff --git a/datapath/actions.c b/datapath/actions.c index c61e5ff0..3223c65b 100644 --- a/datapath/actions.c +++ b/datapath/actions.c @@ -1,6 +1,6 @@ /* * Distributed under the terms of the GNU GPL version 2. - * Copyright (c) 2007, 2008, 2009, 2010 Nicira Networks. + * Copyright (c) 2007, 2008, 2009, 2010, 2011 Nicira Networks. * * Significant portions of this file may be copied from parts of the Linux * kernel, by Linus Torvalds and others. @@ -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); @@ -369,7 +369,7 @@ static int output_control(struct datapath *dp, struct sk_buff *skb, u64 arg, if (!skb) return -ENOMEM; - upcall.type = _ODPL_ACTION_NR; + upcall.cmd = ODP_PACKET_CMD_ACTION; upcall.key = key; upcall.userdata = arg; upcall.sample_pool = 0; @@ -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; @@ -496,7 +496,7 @@ static void sflow_sample(struct datapath *dp, struct sk_buff *skb, if (unlikely(!nskb)) return; - upcall.type = _ODPL_SFLOW_NR; + upcall.cmd = ODP_PACKET_CMD_SAMPLE; upcall.key = key; upcall.userdata = 0; upcall.sample_pool = atomic_read(&p->sflow_pool);