[dpdk-dev] [PATCH] kni: implement header_ops parse method
Igor Ryzhov
iryzhov at nfware.com
Thu Sep 27 02:02:24 CEST 2018
Signed-off-by: Igor Ryzhov <iryzhov at nfware.com>
---
kernel/linux/kni/kni_net.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 7fcfa106c..128a5477c 100644
--- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c
@@ -678,6 +678,19 @@ kni_net_header(struct sk_buff *skb, struct net_device *dev,
return dev->hard_header_len;
}
+/*
+ * Extract hardware address from packet
+ */
+static int
+kni_net_header_parse(const struct sk_buff *skb, unsigned char *haddr)
+{
+ const struct ethhdr *eth = eth_hdr(skb);
+
+ memcpy(haddr, eth->h_source, ETH_ALEN);
+
+ return ETH_ALEN;
+}
+
/*
* Re-fill the eth header
*/
@@ -739,6 +752,7 @@ kni_net_change_carrier(struct net_device *dev, bool new_carrier)
static const struct header_ops kni_net_header_ops = {
.create = kni_net_header,
+ .parse = kni_net_header_parse,
#ifdef HAVE_REBUILD_HEADER
.rebuild = kni_net_rebuild_header,
#endif /* < 4.1.0 */
--
2.19.0
More information about the dev
mailing list