diff mbox

[1/2] net: Allow modules to use is_skb_forwardable

Message ID 1395849627-15711-3-git-send-email-vyasevic@redhat.com
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Vlad Yasevich March 26, 2014, 4 p.m. UTC
Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
---
 include/linux/netdevice.h | 1 +
 net/core/dev.c            | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Stephen Hemminger March 26, 2014, 9:35 p.m. UTC | #1
On Wed, 26 Mar 2014 12:00:26 -0400
Vlad Yasevich <vyasevic@redhat.com> wrote:

> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
> ---
>  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.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vlad Yasevich March 27, 2014, 12:50 a.m. UTC | #2
On 03/26/2014 05:35 PM, Stephen Hemminger wrote:
> On Wed, 26 Mar 2014 12:00:26 -0400
> Vlad Yasevich <vyasevic@redhat.com> wrote:
> 
>> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
>> ---
>>  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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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