[dpdk-dev] [PATCH] kni: implement header_ops parse method
Ferruh Yigit
ferruh.yigit at intel.com
Tue Oct 2 18:58:33 CEST 2018
On 9/27/2018 1:02 AM, Igor Ryzhov wrote:
> Signed-off-by: Igor Ryzhov <iryzhov at nfware.com>
Hi Igor,
What is the motivation to add this support? What is enabled by this?
Meanwhile, why we are not using eth_header_ops, which is already set by
ether_setup().
To disable .cache & .cache_update?
If so why not using relevant eth_header_ops (eth_header, eth_header_parse ..)
instead of implementing ours?
> ---
> 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 */
>
More information about the dev
mailing list