From: Jakub Kicinski <kuba@kernel.org>
To: carlos.fernandez@technica-engineering.de
Cc: davem@davemloft.net, edumazet@google.com, pabeni@redhat.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Sabrina Dubroca <sd@queasysnail.net>
Subject: Re: [PATCH v3] net: macsec SCI assignment for ES = 0
Date: Wed, 21 Jun 2023 17:34:29 -0700 [thread overview]
Message-ID: <20230621173429.18348fc8@kernel.org> (raw)
In-Reply-To: <20230620091301.21981-1-carlos.fernandez@technica-engineering.de>
A few nit picks and questions, when you repost please make sure to CC
Sabrina Dubroca <sd@queasysnail.net>
On Tue, 20 Jun 2023 11:13:01 +0200
carlos.fernandez@technica-engineering.de wrote:
> -static sci_t macsec_frame_sci(struct macsec_eth_header *hdr, bool sci_present)
> +static sci_t macsec_frame_sci(struct macsec_eth_header *hdr, bool sci_present,
> + struct macsec_rxh_data *rxd)
> {
> + struct macsec_dev *macsec_device;
> sci_t sci;
>
> - if (sci_present)
> + if (sci_present) {
> memcpy(&sci, hdr->secure_channel_id,
> - sizeof(hdr->secure_channel_id));
> - else
> + sizeof(hdr->secure_channel_id));
the alignment of sizeof() was correct, don't change it
> + } else if (0 == (hdr->tci_an & (MACSEC_TCI_ES | MACSEC_TCI_SC))) {
Just
} else if (hdr->tci_an & (MACSEC_TCI_ES | MACSEC_TCI_SC)) {
> + list_for_each_entry_rcu(macsec_device, &rxd->secys, secys) {
> + struct macsec_rx_sc *rx_sc;
> + struct macsec_secy *secy = &macsec_device->secy;
You should reorder these two declaration, networking likes local
variable declaration lines longest to shortest.
> + for_each_rxsc(secy, rx_sc) {
> + rx_sc = rx_sc ? macsec_rxsc_get(rx_sc) : NULL;
> + if (rx_sc && rx_sc->active)
> + return rx_sc->sci;
> + }
I haven't looked in detail but are you possibly returning rx_sc->sci
here just to ...
> + }
> + /* If not found, use MAC in hdr as default*/
> sci = make_sci(hdr->eth.h_source, MACSEC_PORT_ES);
> -
> + } else {
> + sci = make_sci(hdr->eth.h_source, MACSEC_PORT_ES);
> + }
> return sci;
> }
>
> @@ -1150,11 +1165,12 @@ static rx_handler_result_t macsec_handle_frame(struct sk_buff **pskb)
>
> macsec_skb_cb(skb)->has_sci = !!(hdr->tci_an & MACSEC_TCI_SC);
> macsec_skb_cb(skb)->assoc_num = hdr->tci_an & MACSEC_AN_MASK;
> - sci = macsec_frame_sci(hdr, macsec_skb_cb(skb)->has_sci);
>
> rcu_read_lock();
> rxd = macsec_data_rcu(skb->dev);
>
> + sci = macsec_frame_sci(hdr, macsec_skb_cb(skb)->has_sci, rxd);
> +
> list_for_each_entry_rcu(macsec, &rxd->secys, secys) {
> struct macsec_rx_sc *sc = find_rx_sc(&macsec->secy, sci);
... look up the rx_sc based on the sci?
--
pw-bot: cr
next prev parent reply other threads:[~2023-06-22 0:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-20 9:13 [PATCH v3] net: macsec SCI assignment for ES = 0 carlos.fernandez
2023-06-22 0:34 ` Jakub Kicinski [this message]
2023-06-22 8:00 ` Carlos Fernandez
2023-06-22 11:49 ` Carlos Fernandez
2023-06-22 19:54 ` Sabrina Dubroca
2023-06-23 10:13 ` carlos.fernandez
2023-06-23 15:40 ` Sabrina Dubroca
2023-06-27 6:13 ` carlos.fernandez
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=20230621173429.18348fc8@kernel.org \
--to=kuba@kernel.org \
--cc=carlos.fernandez@technica-engineering.de \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sd@queasysnail.net \
/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.