From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
To: "Duyck, Alexander H" <alexander.h.duyck@intel.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: bug in ixgbe_atr
Date: Thu, 13 Oct 2016 20:48:31 -0700 [thread overview]
Message-ID: <20161014034831.GC14253@oracle.com> (raw)
In-Reply-To: <B1C1DF2ACD01FD4881736AA51731BAB2A0DDE3@ORSMSX107.amr.corp.intel.com>
On (10/14/16 02:06), Duyck, Alexander H wrote:
> > + case ETH_P_IP:
> > + skb_header_pointer(skb, ETH_HLEN, sizeof (struct iphdr),
> > + &ip_hdr);
> > /* access ihl as u8 to avoid unaligned access on ia64 */
> > - hlen = (hdr.network[0] & 0x0F) << 2;
> > - l4_proto = hdr.ipv4->protocol;
> > + hlen = ip_hdr.ipv4.ihl << 2;
> > + l4_proto = ip_hdr.ipv4.protocol;
> > break;
:
> The problem is this will break other stuff, for example I have seen
> the ihl access actually cause problems with unaligned accesses as some
> architectures decide to pull it as a u32 and then mask it.
Yes, I noticed that u8 comment for ia64.. if that's the only issue
here, we could just reset hdr.network to &ip_hdr..
However, I suspect the above patch is probably not going to work for
the vlan case (it was just a first-pass hack)
> My advice would be to keep this simple. Add a check to make sure we
> have room for at least skb_headlen(skb) - 40 >= hrd.raw - skb->data.
I don't parse that- the hdr union in ixgbe_atr doesnt have a ->raw
field. Can you explain?
> Messing with the protocol bits will break stuff since there is support
> for tunneling also floating around in here now.
>
> I believe we are planning on dropping this code in favor of
> ndo_rx_flow_steer in the future. If we do that then the whole problem
> becomes moot.
Dropping it is fine with me I guess - maybe just return, if the
skb_headlen() doesnt have enough bytes for a network header,
i.e., skb_headlen is at least ETH_HLEN + sizeof (struct iphdr) for
ETH_P_IP, or ETH_HLEN + sizeof (struct ipv6hdr) for ETH_P_IPV6?
--Sowmini
next prev parent reply other threads:[~2016-10-14 3:48 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-14 1:44 bug in ixgbe_atr Sowmini Varadhan
2016-10-14 2:06 ` Duyck, Alexander H
2016-10-14 3:48 ` Sowmini Varadhan [this message]
2016-10-14 16:09 ` Duyck, Alexander H
2016-10-14 23:00 ` Sowmini Varadhan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161014034831.GC14253@oracle.com \
--to=sowmini.varadhan@oracle.com \
--cc=alexander.h.duyck@intel.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.