X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif-netdev.c;h=eb101349f01a1416bde2da1520587b5f47813703;hb=97d6520bea3b779d1acee7b1b2fd8ed60269078f;hp=6de4bfc15898df291053de2b285d7a4f1c2b1c7b;hpb=5bf93d67825502e1bd636de7f1ca9b1b949ca16a;p=openvswitch diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 6de4bfc1..eb101349 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -1041,24 +1041,6 @@ dpif_netdev_wait(struct dpif *dpif) } } -static void -dp_netdev_pop_vlan(struct ofpbuf *packet) -{ - struct vlan_eth_header *veh = packet->l2; - if (packet->size >= sizeof *veh - && veh->veth_type == htons(ETH_TYPE_VLAN)) { - struct eth_header tmp; - - memcpy(tmp.eth_dst, veh->veth_dst, ETH_ADDR_LEN); - memcpy(tmp.eth_src, veh->veth_src, ETH_ADDR_LEN); - tmp.eth_type = veh->veth_next_type; - - ofpbuf_pull(packet, VLAN_HEADER_LEN); - packet->l2 = (char*)packet->l2 + VLAN_HEADER_LEN; - memcpy(packet->data, &tmp, sizeof tmp); - } -} - static void dp_netdev_set_dl(struct ofpbuf *packet, const struct ovs_key_ethernet *eth_key) { @@ -1325,7 +1307,7 @@ dp_netdev_execute_actions(struct dp_netdev *dp, break; case OVS_ACTION_ATTR_POP_VLAN: - dp_netdev_pop_vlan(packet); + eth_pop_vlan(packet); break; case OVS_ACTION_ATTR_SET: