macvlan.c (06f4e926d256d902dd9a53dcb400fd74974ce087) macvlan.c (a37dd3332319260cce81ac91ce25fcc3a31de997)
1/*
2 * Copyright (c) 2007 Patrick McHardy <kaber@trash.net>
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of
7 * the License, or (at your option) any later version.
8 *

--- 224 unchanged lines hidden (view full) ---

233 /* send to other bridge ports directly */
234 if (is_multicast_ether_addr(eth->h_dest)) {
235 macvlan_broadcast(skb, port, dev, MACVLAN_MODE_BRIDGE);
236 goto xmit_world;
237 }
238
239 dest = macvlan_hash_lookup(port, eth->h_dest);
240 if (dest && dest->mode == MACVLAN_MODE_BRIDGE) {
1/*
2 * Copyright (c) 2007 Patrick McHardy <kaber@trash.net>
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of
7 * the License, or (at your option) any later version.
8 *

--- 224 unchanged lines hidden (view full) ---

233 /* send to other bridge ports directly */
234 if (is_multicast_ether_addr(eth->h_dest)) {
235 macvlan_broadcast(skb, port, dev, MACVLAN_MODE_BRIDGE);
236 goto xmit_world;
237 }
238
239 dest = macvlan_hash_lookup(port, eth->h_dest);
240 if (dest && dest->mode == MACVLAN_MODE_BRIDGE) {
241 unsigned int length = skb->len + ETH_HLEN;
242 int ret = dest->forward(dest->dev, skb);
243 macvlan_count_rx(dest, length,
244 ret == NET_RX_SUCCESS, 0);
241 /* send to lowerdev first for its network taps */
242 vlan->forward(vlan->lowerdev, skb);
245
246 return NET_XMIT_SUCCESS;
247 }
248 }
249
250xmit_world:
251 skb->ip_summed = ip_summed;
252 skb_set_dev(skb, vlan->lowerdev);

--- 597 unchanged lines hidden ---
243
244 return NET_XMIT_SUCCESS;
245 }
246 }
247
248xmit_world:
249 skb->ip_summed = ip_summed;
250 skb_set_dev(skb, vlan->lowerdev);

--- 597 unchanged lines hidden ---