Re: [PATCH 6/8] qedi: Add packet filter in light L2 Rx path.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/20/18 2:37 AM, Nilesh Javali wrote:
> From: Manish Rangankar <manish.rangankar@xxxxxxxxxx>
> 
> Add packet filter to avoid unnecessary packet processing in iscsiuio.
> 
> Signed-off-by: Manish Rangankar <manish.rangankar@xxxxxxxxxx>
> ---
>  drivers/scsi/qedi/qedi_main.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c
> index 713db9c..2621dee 100644
> --- a/drivers/scsi/qedi/qedi_main.c
> +++ b/drivers/scsi/qedi/qedi_main.c
> @@ -659,6 +659,7 @@ static int qedi_ll2_rx(void *cookie, struct sk_buff *skb, u32 arg1, u32 arg2)
>  	struct qedi_uio_dev *udev;
>  	struct qedi_uio_ctrl *uctrl;
>  	struct skb_work_list *work;
> +	struct ethhdr *eh;
>  	u32 prod;
>  
>  	if (!qedi) {
> @@ -673,6 +674,29 @@ static int qedi_ll2_rx(void *cookie, struct sk_buff *skb, u32 arg1, u32 arg2)
>  		return 0;
>  	}
>  
> +	eh = (struct ethhdr *)skb->data;
> +	/* Undo VLAN encapsulation */
> +	if (eh->h_proto == htons(ETH_P_8021Q)) {
> +		memmove((u8 *)eh + VLAN_HLEN, eh, ETH_ALEN * 2);
> +		eh = (struct ethhdr *)skb_pull(skb, VLAN_HLEN);
> +		skb_reset_mac_header(skb);
> +	}
> +
> +	/* Filter out non FIP/FCoE frames here to free them faster */
> +	if (eh->h_proto != htons(ETH_P_ARP) &&
> +	    eh->h_proto != htons(ETH_P_IP) &&
> +	    eh->h_proto != htons(ETH_P_IPV6)) {
> +		QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_LL2,
> +			  "Dropping frame ethertype [0x%x] len [0x%x].\n",
> +			  eh->h_proto, skb->len);
> +		kfree_skb(skb);
> +		return 0;
> +	}
> +
> +	QEDI_INFO(&qedi->dbg_ctx, QEDI_LOG_LL2,
> +		  "Allowed frame ethertype [0x%x] len [0x%x].\n",
> +		  eh->h_proto, skb->len);
> +
>  	udev = qedi->udev;
>  	uctrl = udev->uctrl;
>  
> 

Reviewed-by: Lee Duncan <lduncan@xxxxxxxx>



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux