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 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.