From: David Ahern <dsahern@gmail.com>
To: Justin Iurman <justin.iurman@uliege.be>
Cc: netdev@vger.kernel.org, davem@davemloft.net, kuba@kernel.org,
yoshfuji@linux-ipv6.org, dsahern@kernel.org
Subject: Re: [PATCH net-next 1/2] ipv6: ioam: Add support for the ip6ip6 encapsulation
Date: Thu, 30 Sep 2021 12:20:21 -0600 [thread overview]
Message-ID: <0ce98a52-e9fe-9b5c-68ca-f81c88e021ab@gmail.com> (raw)
In-Reply-To: <2092322692.108322349.1633015157710.JavaMail.zimbra@uliege.be>
On 9/30/21 9:19 AM, Justin Iurman wrote:
>>> static const struct nla_policy ioam6_iptunnel_policy[IOAM6_IPTUNNEL_MAX + 1] = {
>>> - [IOAM6_IPTUNNEL_TRACE] = NLA_POLICY_EXACT_LEN(sizeof(struct ioam6_trace_hdr)),
>>> + [IOAM6_IPTUNNEL_TRACE] = NLA_POLICY_EXACT_LEN(sizeof(struct
>>> ioam6_iptunnel_trace)),
>>
>> you can't do that. Once a kernel is released with a given UAPI, it can
>> not be changed. You could go the other way and handle
>>
>> struct ioam6_iptunnel_trace {
>> + struct ioam6_trace_hdr trace;
>> + __u8 mode;
>> + struct in6_addr tundst; /* unused for inline mode */
>> +};
>
> Makes sense. But I'm not sure what you mean by "go the other way". Should I handle ioam6_iptunnel_trace as well, in addition to ioam6_trace_hdr, so that the uapi is backward compatible?
by "the other way" I meant let ioam6_trace_hdr be the top element in the
new ioam6_iptunnel_trace struct. If the IOAM6_IPTUNNEL_TRACE size ==
ioam6_trace_hdr then you know it is the legacy argument vs sizeof
ioam6_iptunnel_trace which is the new.
>
>> Also, no gaps in uapi. Make sure all holes are stated; an anonymous
>> entry is best.
>
> Would something like this do the trick?
>
> struct ioam6_iptunnel_trace {
> struct ioam6_trace_hdr trace;
> __u8 mode;
> union { /* anonymous field only used by both the encap and auto modes */
> struct in6_addr tundst;
> };
> };
By anonymous filling of the holes I meant something like:
struct ioam6_iptunnel_trace {
struct ioam6_trace_hdr trace;
__u8 mode;
__u8 :8;
__u16 :16;
struct in6_addr tundst;
};
Use pahole to check that struct for proper alignment of the entries as
desired (4-byte or 8-byte aligned).
>
>>> };
>>>
>>> -static int nla_put_ioam6_trace(struct sk_buff *skb, int attrtype,
>>> - struct ioam6_trace_hdr *trace)
>>> -{
>>> - struct ioam6_trace_hdr *data;
>>> - struct nlattr *nla;
>>> - int len;
>>> -
>>> - len = sizeof(*trace);
>>> -
>>> - nla = nla_reserve(skb, attrtype, len);
>>> - if (!nla)
>>> - return -EMSGSIZE;
>>> -
>>> - data = nla_data(nla);
>>> - memcpy(data, trace, len);
>>> -
>>> - return 0;
>>> -}
>>> -
>>
>> quite a bit of the change seems like refactoring from existing feature
>> to allow the new ones. Please submit refactoring changes as a
>> prerequisite patch. The patch that introduces your new feature should be
>> focused solely on what is needed to implement that feature.
>
> +1, will do.
>
next prev parent reply other threads:[~2021-09-30 18:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-28 19:03 [PATCH net-next 0/2] Support for the ip6ip6 encapsulation of IOAM Justin Iurman
2021-09-28 19:03 ` [PATCH net-next 1/2] ipv6: ioam: Add support for the ip6ip6 encapsulation Justin Iurman
2021-09-30 3:26 ` David Ahern
2021-09-30 15:19 ` Justin Iurman
2021-09-30 18:20 ` David Ahern [this message]
2021-10-01 11:38 ` Justin Iurman
2021-10-01 14:06 ` David Ahern
2021-10-01 14:10 ` Justin Iurman
2021-09-28 19:03 ` [PATCH net-next 2/2] selftests: net: Test for the IOAM encapsulation with IPv6 Justin Iurman
2021-09-30 3:20 ` [PATCH net-next 0/2] Support for the ip6ip6 encapsulation of IOAM David Ahern
2021-09-30 12:32 ` Justin Iurman
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=0ce98a52-e9fe-9b5c-68ca-f81c88e021ab@gmail.com \
--to=dsahern@gmail.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=justin.iurman@uliege.be \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=yoshfuji@linux-ipv6.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.