From: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
To: David Miller <davem@davemloft.net>, daniel@iogearbox.net
Cc: jhs@mojatatu.com, xiyou.wangcong@gmail.com, edumazet@google.com,
netdev@vger.kernel.org, shmulik.ladkani@gmail.com
Subject: Re: [PATCH net-next 4/4] net/sched: act_mirred: Implement ingress actions
Date: Tue, 27 Sep 2016 17:18:04 +0300 [thread overview]
Message-ID: <20160927171804.5288347d@pixies> (raw)
In-Reply-To: <20160927.094441.1957543068015677016.davem@davemloft.net>
On Tue, 27 Sep 2016 09:44:41 -0400 (EDT), davem@davemloft.net wrote:
> From: Daniel Borkmann <daniel@iogearbox.net>
> Date: Tue, 27 Sep 2016 12:39:34 +0200
>
> > Any reason why dev_forward_skb() is not preferred over direct
> > netif_receive_skb() you're using? It would, for example, implicitly
> > assure that pkt_type is always PACKET_HOST, etc.
>
> dev_forward_skb() will pull the ethernet header.
>
> And since a direct call to netif_receive_skb() will not, one of these
> two choices won't work properly.
In the patch, I'm issuing a skb_pull_rcsum() prior the netif_receive_skb,
snip:
+ /* If action's target direction differs than filter's direction,
+ * and devices expect a mac header on xmit, then mac push/pull is
+ * needed.
+ */
+ if (at != tcf_mirred_act_direction(m->tcfm_eaction) &&
+ m->tcfm_mac_header_xmit) {
+ if (at & AT_EGRESS) {
+ /* caught at egress, act ingress: pull mac */
+ mac_len = skb_network_header(skb) - skb_mac_header(skb);
+ skb_pull_rcsum(skb2, mac_len);
Existing *egress* mir/red already supported pairing two non-eth devices.
Therefore I allow it for the new *ingress* mir/red as well.
Now, following this premise, the skb_pull_rcsum() shown above is executed
for devices whose xmit is mac_header based.
I've tested both ARPHRD_ETHER devices and some non ARPHRD_ETHER devices.
(an *existing* symmetric skb_push_rcsum() is invoked if packet is caught at
ingress and redirected for egress on a mac_header xmit device)
This was the reason for picking netif_receive_skb() over dev_forward_skb().
Regards,
Shmulik
next prev parent reply other threads:[~2016-09-27 14:18 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-22 13:21 [PATCH net-next 0/4] act_mirred: Ingress actions support Shmulik Ladkani
2016-09-22 13:21 ` [PATCH net-next 1/4] net/sched: act_mirred: Rename tcfm_ok_push to tcfm_mac_header_xmit Shmulik Ladkani
2016-09-27 10:30 ` Daniel Borkmann
2016-09-27 18:24 ` Shmulik Ladkani
2016-09-22 13:21 ` [PATCH net-next 2/4] net/sched: act_mirred: Refactor detection whether dev needs xmit at mac header Shmulik Ladkani
2016-09-22 13:21 ` [PATCH net-next 3/4] net/sched: tc_mirred: Rename public predicates 'is_tcf_mirred_redirect' and 'is_tcf_mirred_mirror' Shmulik Ladkani
2016-09-22 13:21 ` [PATCH net-next 4/4] net/sched: act_mirred: Implement ingress actions Shmulik Ladkani
2016-09-22 14:54 ` Eric Dumazet
2016-09-22 18:27 ` Shmulik Ladkani
2016-09-22 18:42 ` Eric Dumazet
2016-09-22 23:40 ` Jamal Hadi Salim
2016-09-23 5:11 ` Shmulik Ladkani
2016-09-23 12:48 ` Jamal Hadi Salim
2016-09-23 15:40 ` Shmulik Ladkani
2016-09-25 0:20 ` Cong Wang
2016-09-25 13:05 ` Jamal Hadi Salim
2016-09-25 16:26 ` Daniel Borkmann
2016-09-25 18:33 ` Florian Westphal
2016-09-25 23:47 ` Jamal Hadi Salim
2016-09-25 23:31 ` Jamal Hadi Salim
2016-09-25 17:33 ` Shmulik Ladkani
2016-09-25 18:31 ` Florian Westphal
2016-09-26 1:15 ` Jamal Hadi Salim
2016-09-26 1:35 ` Florian Westphal
2016-09-26 1:40 ` Jamal Hadi Salim
2016-09-26 14:43 ` Hannes Frederic Sowa
2016-09-26 14:53 ` Daniel Borkmann
2016-09-26 15:12 ` Hannes Frederic Sowa
2016-09-26 15:53 ` Daniel Borkmann
2016-09-26 15:26 ` Shmulik Ladkani
2016-09-25 23:45 ` Jamal Hadi Salim
2016-09-25 0:07 ` Cong Wang
2016-09-25 13:39 ` Jamal Hadi Salim
2016-09-26 4:55 ` Cong Wang
2016-09-25 17:59 ` Shmulik Ladkani
2016-09-26 4:56 ` Cong Wang
2016-09-24 23:50 ` Cong Wang
2016-09-27 5:56 ` David Miller
2016-09-27 8:07 ` Shmulik Ladkani
2016-09-27 10:39 ` Daniel Borkmann
2016-09-27 13:44 ` David Miller
2016-09-27 14:18 ` Shmulik Ladkani [this message]
2016-09-27 14:47 ` Daniel Borkmann
2016-09-27 14:06 ` Jamal Hadi Salim
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=20160927171804.5288347d@pixies \
--to=shmulik.ladkani@ravellosystems.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jhs@mojatatu.com \
--cc=netdev@vger.kernel.org \
--cc=shmulik.ladkani@gmail.com \
--cc=xiyou.wangcong@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).