From: sashiko-bot@kernel.org
To: ThisSeanZhang <thisseanzhang@gmail.com>
Cc: bpf@vger.kernel.org
Subject: Re: [RFC bpf-next 3/3] selftests/bpf: Add a test for the PPPoE encap/decap adjust_room flags
Date: Sat, 26 Sep 2026 21:33:25 +0000 [thread overview]
Message-ID: <20260926213325.B03AD1F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260926210757.2152159-4-thisseanzhang@gmail.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] bpf: incorrect multi-line comment style
--
commit fe908855753e03da84cf9e3447581e4350dd47f1
Author: ThisSeanZhang <thisseanzhang@gmail.com>
selftests/bpf: Add a test for the PPPoE encap/decap adjust_room flags
This commit adds a tc selftest that exercises the new PPPoE flags of
bpf_skb_adjust_room(). It verifies encapsulation and decapsulation behaviors
over IPv4 and IPv6, as well as multiple error conditions.
> diff --git a/tools/testing/selftests/bpf/prog_tests/tc_pppoe.c b/tools/testing/selftests/bpf/prog_tests/tc_pppoe.c
> new file mode 100644
> index 0000000000000..ee914e828d4db
> --- /dev/null
> +++ b/tools/testing/selftests/bpf/prog_tests/tc_pppoe.c
[ ... ]
> +static void test_encap_decap(struct tc_pppoe *skel, const char *subtest,
> + const __u8 *pkt, __u32 pkt_len, int ethertype,
> + __u8 ppp_proto)
> +{
[ ... ]
> + /* Ethernet header, with the ethertype changed to PPPoE session. */
> + ASSERT_EQ(encap_pkt[12], 0x88, "encap eth h_proto");
> + ASSERT_EQ(encap_pkt[13], 0x64, "encap eth h_proto");
> + /* PPPoE session header: ver/type/code, session id, length and
> + * PPP protocol.
> + */
[Severity: Low]
This isn't a bug, but the BPF subsystem prefers the opening /* of multi-line
comments to be on its own line.
> + ASSERT_EQ(encap_pkt[14], 0x11, "encap pppoe ver/type");
> + ASSERT_EQ(encap_pkt[15], 0x00, "encap pppoe code");
[ ... ]
> + ASSERT_EQ(encap_pkt[20], 0x00, "encap ppp proto");
> + ASSERT_EQ(encap_pkt[21], ppp_proto, "encap ppp proto");
> + /* The original packet must be shifted unchanged behind the
> + * new header.
> + */
[Severity: Low]
Could the opening /* be placed on its own line to match the BPF multi-line
comment style?
> + ASSERT_MEMEQ(encap_pkt + 14 + PPP_SES_HLEN, pkt + 14,
> + pkt_len - 14, "encap payload");
[ ... ]
> +void test_tc_pppoe(void)
> +{
> + /* A PPPoE packet whose PPP protocol is neither IPv4 nor IPv6:
> + * IP control protocol (0x8021) in this case.
> + */
[Severity: Low]
Does this follow the modern kernel multi-line comment style expected in the
BPF subsystem?
> + static const __u8 bad_ppp_pkt[] = {
> + 0x11, 0x22, 0x33, 0x44, 0x55, 0x66,
[ ... ]
> + 0x00, 0x00, 0x00, 0x00,
> + };
> + /* A PPPoE packet whose payload is too short to still contain a
> + * full IP header after decapsulation.
> + */
[Severity: Low]
It looks like the opening /* is not on its own line here either.
> + static const __u8 truncated_pkt[] = {
> + 0x11, 0x22, 0x33, 0x44, 0x55, 0x66,
[ ... ]
> + test_decap_reject_input(skel, truncated_pkt, sizeof(truncated_pkt),
> + "decap-truncated");
> + test_reject(skel, 6, fake_ppp_pkt, sizeof(fake_ppp_pkt),
> + "reject-decap-fake-ppp-proto");
> +
> + /* Encapsulate a v4 packet once more to get a PPPoE packet as
> + * input for the "decap without the flag" rejection case.
> + */
[Severity: Low]
This is a minor style observation, but multi-line comments in BPF tests
should start with /* on a separate line.
> + ASSERT_OK(run_prog(bpf_program__fd(skel->progs.tc_pppoe_encap),
> + ip4_pkt, sizeof(ip4_pkt), encap_pkt,
[ ... ]
> diff --git a/tools/testing/selftests/bpf/progs/tc_pppoe.c b/tools/testing/selftests/bpf/progs/tc_pppoe.c
> new file mode 100644
> index 0000000000000..357e1b5706f7a
> --- /dev/null
> +++ b/tools/testing/selftests/bpf/progs/tc_pppoe.c
[ ... ]
> +/* skb->protocol as observed after the helper call. */
> +int encap_proto;
> +int decap_proto;
> +
> +/* Set when tc_pppoe_reject observes a call that should have been
> + * rejected by the helper.
> + */
[Severity: Low]
This isn't a functional issue, but BPF style guidelines recommend placing the
opening /* of a multi-line comment on its own line.
> +int reject_unexpected;
> +
> +SEC("tc")
> +int tc_pppoe_encap(struct __sk_buff *skb)
> +{
> + __u8 hdr[PPPOE_SES_HLEN_TEST] = {
> + 0x11, 0x00, /* ver, type, code */
> + 0xde, 0xad, /* session id */
> + 0x00, 0x00, /* length, set below */
> + 0x00, 0x00, /* PPP protocol, set below */
> + };
> + struct ethhdr eth;
> + /* The PPPoE length field covers everything after the 6 byte
> + * session header: the PPP protocol field plus the payload.
> + */
[Severity: Low]
Could this comment be formatted to match the multi-line comment style used
in the BPF subsystem?
> + __u16 plen = skb->len - ETH_HLEN_TEST + 2;
> +
> + hdr[4] = (plen >> 8) & 0xff;
[ ... ]
> +SEC("tc")
> +int tc_pppoe_decap(struct __sk_buff *skb)
> +{
> + struct ethhdr eth;
[ ... ]
> + decap_proto = skb->protocol;
> +
> + /* Restore the ethertype to the protocol of the decapsulated
> + * payload, as picked by the kernel from the PPP protocol field.
> + */
[Severity: Low]
Does this multi-line comment align with the BPF coding style?
> + eth.h_proto = (__be16)skb->protocol;
> + if (bpf_skb_store_bytes(skb, 0, ð, sizeof(eth), 0))
> + return TC_ACT_SHOT_TEST;
> +
> + return TC_ACT_OK_TEST;
> +}
> +
> +/* Every bpf_skb_adjust_room() call below must be rejected by the
> + * helper; tc_pppoe_reject reports (and fails the test) if one of
> + * them unexpectedly succeeds.
> + */
[Severity: Low]
This is a minor style observation, but the opening /* here should ideally be
on its own line.
> +SEC("tc")
> +int tc_pppoe_reject(struct __sk_buff *skb)
> +{
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260926210757.2152159-1-thisseanzhang@gmail.com?part=3
next prev parent reply other threads:[~2026-09-26 21:33 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-26 21:07 [RFC bpf-next 0/3] bpf: Add PPPoE encap/decap support to bpf_skb_adjust_room ThisSeanZhang
2026-09-26 21:07 ` [RFC bpf-next 1/3] bpf: Add PPPoE encap " ThisSeanZhang
2026-09-26 21:07 ` [RFC bpf-next 2/3] bpf: Add PPPoE decap " ThisSeanZhang
2026-09-26 21:07 ` [RFC bpf-next 3/3] selftests/bpf: Add a test for the PPPoE encap/decap adjust_room flags ThisSeanZhang
2026-09-26 21:33 ` sashiko-bot [this message]
2026-09-27 4:41 ` [RFC bpf-next 0/3] bpf: Add PPPoE encap/decap support to bpf_skb_adjust_room Alexei Starovoitov
2026-09-27 6:13 ` Sean zhang
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=20260926213325.B03AD1F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=thisseanzhang@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