mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									e971a9a09d
								
							
						
					
					
						commit
						74692caf1b
					
				
					 1 changed files with 10 additions and 0 deletions
				
			
		| 
						 | 
					@ -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,
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue