Commit 74692caf authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan Committed by David S. Miller

net: qualcomm: rmnet: Process packets over ethernet

Add support to send and receive packets over ethernet.
An example of usage is testing the data path on UML. This can be
achieved by setting up two UML instances in multicast mode and
associating rmnet over the UML ethernet device.
Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e971a9a0
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/netdev_features.h> #include <linux/netdev_features.h>
#include <linux/if_arp.h>
#include "rmnet_private.h" #include "rmnet_private.h"
#include "rmnet_config.h" #include "rmnet_config.h"
#include "rmnet_vnd.h" #include "rmnet_vnd.h"
...@@ -104,6 +105,15 @@ rmnet_map_ingress_handler(struct sk_buff *skb, ...@@ -104,6 +105,15 @@ rmnet_map_ingress_handler(struct sk_buff *skb,
{ {
struct sk_buff *skbn; struct sk_buff *skbn;
if (skb->dev->type == ARPHRD_ETHER) {
if (pskb_expand_head(skb, ETH_HLEN, 0, GFP_KERNEL)) {
kfree_skb(skb);
return;
}
skb_push(skb, ETH_HLEN);
}
if (port->ingress_data_format & RMNET_INGRESS_FORMAT_DEAGGREGATION) { if (port->ingress_data_format & RMNET_INGRESS_FORMAT_DEAGGREGATION) {
while ((skbn = rmnet_map_deaggregate(skb)) != NULL) while ((skbn = rmnet_map_deaggregate(skb)) != NULL)
__rmnet_map_ingress_handler(skbn, port); __rmnet_map_ingress_handler(skbn, port);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment