diff options
Diffstat (limited to 'target/mips/mikrotik-rb4xx/patches/4.1.10/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch')
-rw-r--r-- | target/mips/mikrotik-rb4xx/patches/4.1.10/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/target/mips/mikrotik-rb4xx/patches/4.1.10/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch b/target/mips/mikrotik-rb4xx/patches/4.1.10/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch deleted file mode 100644 index 1a94f7e54..000000000 --- a/target/mips/mikrotik-rb4xx/patches/4.1.10/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch +++ /dev/null @@ -1,167 +0,0 @@ -diff -Nur linux-4.1.6.orig/include/linux/netdevice.h linux-4.1.6/include/linux/netdevice.h ---- linux-4.1.6.orig/include/linux/netdevice.h 2015-09-13 22:24:50.977669635 +0200 -+++ linux-4.1.6/include/linux/netdevice.h 2015-09-13 22:25:26.259637337 +0200 -@@ -1270,6 +1270,7 @@ - IFF_XMIT_DST_RELEASE_PERM = 1<<22, - IFF_IPVLAN_MASTER = 1<<23, - IFF_IPVLAN_SLAVE = 1<<24, -+ IFF_NO_IP_ALIGN = 1<<25, - }; - - #define IFF_802_1Q_VLAN IFF_802_1Q_VLAN -@@ -1297,6 +1298,7 @@ - #define IFF_XMIT_DST_RELEASE_PERM IFF_XMIT_DST_RELEASE_PERM - #define IFF_IPVLAN_MASTER IFF_IPVLAN_MASTER - #define IFF_IPVLAN_SLAVE IFF_IPVLAN_SLAVE -+#define IFF_NO_IP_ALIGN IFF_NO_IP_ALIGN - - /** - * struct net_device - The DEVICE structure. -@@ -1567,6 +1569,11 @@ - const struct swdev_ops *swdev_ops; - #endif - -+#ifdef CONFIG_ETHERNET_PACKET_MANGLE -+ void (*eth_mangle_rx)(struct net_device *dev, struct sk_buff *skb); -+ struct sk_buff *(*eth_mangle_tx)(struct net_device *dev, struct sk_buff *skb); -+#endif -+ - const struct header_ops *header_ops; - - unsigned int flags; -@@ -1631,6 +1638,10 @@ - struct mpls_dev __rcu *mpls_ptr; - #endif - -+#ifdef CONFIG_ETHERNET_PACKET_MANGLE -+ void *phy_ptr; /* PHY device specific data */ -+#endif -+ - /* - * Cache lines mostly used on receive path (including eth_type_trans()) - */ -diff -Nur linux-4.1.6.orig/include/linux/skbuff.h linux-4.1.6/include/linux/skbuff.h ---- linux-4.1.6.orig/include/linux/skbuff.h 2015-09-13 22:24:50.981669405 +0200 -+++ linux-4.1.6/include/linux/skbuff.h 2015-09-13 22:25:26.267636876 +0200 -@@ -2068,6 +2068,10 @@ - return (len < skb->len) ? __pskb_trim(skb, len) : 0; - } - -+extern struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev, -+ unsigned int length, gfp_t gfp); -+ -+ - /** - * pskb_trim_unique - remove end from a paged unique (not cloned) buffer - * @skb: buffer to alter -@@ -2176,16 +2180,6 @@ - } - - --static inline struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev, -- unsigned int length, gfp_t gfp) --{ -- struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp); -- -- if (NET_IP_ALIGN && skb) -- skb_reserve(skb, NET_IP_ALIGN); -- return skb; --} -- - static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev, - unsigned int length) - { -diff -Nur linux-4.1.6.orig/net/core/dev.c linux-4.1.6/net/core/dev.c ---- linux-4.1.6.orig/net/core/dev.c 2015-09-13 22:24:51.109662032 +0200 -+++ linux-4.1.6/net/core/dev.c 2015-09-13 22:25:26.267636876 +0200 -@@ -2657,10 +2657,20 @@ - if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all)) - dev_queue_xmit_nit(skb, dev); - -- len = skb->len; -- trace_net_dev_start_xmit(skb, dev); -- rc = netdev_start_xmit(skb, dev, txq, more); -- trace_net_dev_xmit(skb, rc, dev, len); -+#ifdef CONFIG_ETHERNET_PACKET_MANGLE -+ if (!dev->eth_mangle_tx || -+ (skb = dev->eth_mangle_tx(dev, skb)) != NULL) -+#else -+ if (1) -+#endif -+ { -+ len = skb->len; -+ trace_net_dev_start_xmit(skb, dev); -+ rc = netdev_start_xmit(skb, dev, txq, more); -+ trace_net_dev_xmit(skb, rc, dev, len); -+ } else { -+ rc = NETDEV_TX_OK; -+ } - - return rc; - } -diff -Nur linux-4.1.6.orig/net/core/skbuff.c linux-4.1.6/net/core/skbuff.c ---- linux-4.1.6.orig/net/core/skbuff.c 2015-09-13 22:24:51.113661802 +0200 -+++ linux-4.1.6/net/core/skbuff.c 2015-09-13 22:25:49.410303821 +0200 -@@ -63,6 +63,7 @@ - #include <linux/errqueue.h> - #include <linux/prefetch.h> - #include <linux/if_vlan.h> -+#include <linux/if.h> - #include <linux/locallock.h> - - #include <net/protocol.h> -@@ -570,6 +571,22 @@ - } - EXPORT_SYMBOL(__napi_alloc_skb); - -+struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev, -+ unsigned int length, gfp_t gfp) -+{ -+ struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp); -+ -+#ifdef CONFIG_ETHERNET_PACKET_MANGLE -+ if (dev && (dev->priv_flags & IFF_NO_IP_ALIGN)) -+ return skb; -+#endif -+ -+ if (NET_IP_ALIGN && skb) -+ skb_reserve(skb, NET_IP_ALIGN); -+ return skb; -+} -+EXPORT_SYMBOL(__netdev_alloc_skb_ip_align); -+ - void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off, - int size, unsigned int truesize) - { -diff -Nur linux-4.1.6.orig/net/ethernet/eth.c linux-4.1.6/net/ethernet/eth.c ---- linux-4.1.6.orig/net/ethernet/eth.c 2015-08-17 05:52:51.000000000 +0200 -+++ linux-4.1.6/net/ethernet/eth.c 2015-09-13 22:25:26.271636646 +0200 -@@ -155,6 +155,12 @@ - const struct ethhdr *eth; - - skb->dev = dev; -+ -+#ifdef CONFIG_ETHERNET_PACKET_MANGLE -+ if (dev->eth_mangle_rx) -+ dev->eth_mangle_rx(dev, skb); -+#endif -+ - skb_reset_mac_header(skb); - skb_pull_inline(skb, ETH_HLEN); - eth = eth_hdr(skb); -diff -Nur linux-4.1.6.orig/net/Kconfig linux-4.1.6/net/Kconfig ---- linux-4.1.6.orig/net/Kconfig 2015-08-17 05:52:51.000000000 +0200 -+++ linux-4.1.6/net/Kconfig 2015-09-13 22:25:26.279636185 +0200 -@@ -25,6 +25,12 @@ - - if NET - -+config ETHERNET_PACKET_MANGLE -+ bool -+ help -+ This option can be selected by phy drivers that need to mangle -+ packets going in or out of an ethernet device. -+ - config WANT_COMPAT_NETLINK_MESSAGES - bool - help |