On 03/26/2014 05:35 PM, Stephen Hemminger wrote: > On Wed, 26 Mar 2014 12:00:26 -0400 > Vlad Yasevich <vyasevic@xxxxxxxxxx> wrote: > >> Signed-off-by: Vlad Yasevich <vyasevic@xxxxxxxxxx> >> --- >> include/linux/netdevice.h | 1 + >> net/core/dev.c | 3 ++- >> 2 files changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h >> index e8eeebd..d855794 100644 >> --- a/include/linux/netdevice.h >> +++ b/include/linux/netdevice.h >> @@ -2551,6 +2551,7 @@ int dev_get_phys_port_id(struct net_device *dev, >> int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, >> struct netdev_queue *txq); >> int dev_forward_skb(struct net_device *dev, struct sk_buff *skb); >> +bool is_skb_forwardable(struct net_device *dev, struct sk_buff *skb); >> >> extern int netdev_budget; >> >> diff --git a/net/core/dev.c b/net/core/dev.c >> index b1b0c8d..a98f7fa 100644 >> --- a/net/core/dev.c >> +++ b/net/core/dev.c >> @@ -1645,7 +1645,7 @@ static inline void net_timestamp_set(struct sk_buff *skb) >> __net_timestamp(SKB); \ >> } \ >> >> -static inline bool is_skb_forwardable(struct net_device *dev, >> +bool is_skb_forwardable(struct net_device *dev, >> struct sk_buff *skb) >> { >> unsigned int len; >> @@ -1665,6 +1665,7 @@ static inline bool is_skb_forwardable(struct net_device *dev, >> >> return false; >> } >> +EXPORT_SYMBOL_GPL(is_skb_forwardable); >> >> /** >> * dev_forward_skb - loopback an skb to another netif > > This will allow an arbitrary 1522 byte frame to be forwarded. > Not sure if this ok. > We already do that for macvlan/veth. -vlad