|
@@ -315,17 +315,13 @@ static int ipvlan_rcv_frame(struct ipvl_addr *addr, struct sk_buff **pskb,
|
|
|
|
|
|
*pskb = skb;
|
|
*pskb = skb;
|
|
}
|
|
}
|
|
- ipvlan_skb_crossing_ns(skb, dev);
|
|
|
|
|
|
|
|
if (local) {
|
|
if (local) {
|
|
skb->pkt_type = PACKET_HOST;
|
|
skb->pkt_type = PACKET_HOST;
|
|
if (dev_forward_skb(ipvlan->dev, skb) == NET_RX_SUCCESS)
|
|
if (dev_forward_skb(ipvlan->dev, skb) == NET_RX_SUCCESS)
|
|
success = true;
|
|
success = true;
|
|
} else {
|
|
} else {
|
|
- if (!ether_addr_equal_64bits(eth_hdr(skb)->h_dest,
|
|
|
|
- ipvlan->phy_dev->dev_addr))
|
|
|
|
- skb->pkt_type = PACKET_OTHERHOST;
|
|
|
|
-
|
|
|
|
|
|
+ skb->dev = dev;
|
|
ret = RX_HANDLER_ANOTHER;
|
|
ret = RX_HANDLER_ANOTHER;
|
|
success = true;
|
|
success = true;
|
|
}
|
|
}
|
|
@@ -590,7 +586,7 @@ static int ipvlan_xmit_mode_l2(struct sk_buff *skb, struct net_device *dev)
|
|
return NET_XMIT_SUCCESS;
|
|
return NET_XMIT_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
- ipvlan_skb_crossing_ns(skb, ipvlan->phy_dev);
|
|
|
|
|
|
+ skb->dev = ipvlan->phy_dev;
|
|
return dev_queue_xmit(skb);
|
|
return dev_queue_xmit(skb);
|
|
}
|
|
}
|
|
|
|
|