-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net/mlx5: Accel, add common metadata functions
This patch adds common functions to handle mellanox metadata headers. These functions are used by IPsec and TLS to process FPGA metadata. Signed-off-by: Boris Pismenny <borisp@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Boris Pismenny
authored and
David S. Miller
committed
Jul 16, 2018
1 parent
790af90
commit 10e71ac
Showing
3 changed files
with
45 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#ifndef __MLX5E_ACCEL_H__ | ||
#define __MLX5E_ACCEL_H__ | ||
|
||
#ifdef CONFIG_MLX5_ACCEL | ||
|
||
#include <linux/skbuff.h> | ||
#include <linux/netdevice.h> | ||
#include "en.h" | ||
|
||
static inline bool is_metadata_hdr_valid(struct sk_buff *skb) | ||
{ | ||
__be16 *ethtype; | ||
|
||
if (unlikely(skb->len < ETH_HLEN + MLX5E_METADATA_ETHER_LEN)) | ||
return false; | ||
ethtype = (__be16 *)(skb->data + ETH_ALEN * 2); | ||
if (*ethtype != cpu_to_be16(MLX5E_METADATA_ETHER_TYPE)) | ||
return false; | ||
return true; | ||
} | ||
|
||
static inline void remove_metadata_hdr(struct sk_buff *skb) | ||
{ | ||
struct ethhdr *old_eth; | ||
struct ethhdr *new_eth; | ||
|
||
/* Remove the metadata from the buffer */ | ||
old_eth = (struct ethhdr *)skb->data; | ||
new_eth = (struct ethhdr *)(skb->data + MLX5E_METADATA_ETHER_LEN); | ||
memmove(new_eth, old_eth, 2 * ETH_ALEN); | ||
/* Ethertype is already in its new place */ | ||
skb_pull_inline(skb, MLX5E_METADATA_ETHER_LEN); | ||
} | ||
|
||
#endif /* CONFIG_MLX5_ACCEL */ | ||
|
||
#endif /* __MLX5E_EN_ACCEL_H__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters