All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Hopps <chopps@chopps.org>
To: Sabrina Dubroca <sd@queasysnail.net>
Cc: Christian Hopps <chopps@chopps.org>,
	devel@linux-ipsec.org,
	Steffen Klassert <steffen.klassert@secunet.com>,
	netdev@vger.kernel.org, Christian  Hopps <chopps@labn.net>
Subject: Re: [PATCH ipsec-next v5 06/17] xfrm: add mode_cbs module functionality
Date: Wed, 31 Jul 2024 14:41:46 -0400	[thread overview]
Message-ID: <m2ikwl8kjf.fsf@ja.int.chopps.org> (raw)
In-Reply-To: <m2mslx8kwx.fsf@ja.int.chopps.org>


Christian Hopps <chopps@chopps.org> writes:

> Sabrina Dubroca <sd@queasysnail.net> writes:
>
>> 2024-07-30, 17:29:06 -0400, Christian Hopps wrote:
>>>
>>> Sabrina Dubroca <sd@queasysnail.net> writes:
>>>
>>> > 2024-07-14, 16:22:34 -0400, Christian Hopps wrote:
>>> > > +struct xfrm_mode_cbs {
>>> >
>>> > It would be nice to add kdoc for the whole thing.
>>>
>>> Ok, I'll move the inline comments to a kdoc. FWIW, all the other structs in
>>> this header, including the main `xfrm_state` struct use the same inline
>>> comment documentation style I copied.
>>
>> Sure, but I don't think we should model new code on old habits.
>>
>>> > > diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
>>> > > index 7cee9c0a2cdc..6ff05604f973 100644
>>> > > --- a/net/xfrm/xfrm_input.c
>>> > > +++ b/net/xfrm/xfrm_input.c
>>> > > @@ -494,6 +497,10 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
>>> > >
>>> > >  		family = x->props.family;
>>> > >
>>> > > +		/* An encap_type of -3 indicates reconstructed inner packet */
>>> >
>>> > And I think it's time to document all the encap_types above the
>>> > function (and in particular, how xfrm_inner_mode_input/encap_type=-3
>>> > pair together), and/or define some constants. Also, is -2 used
>>> > anywhere (I only see -1 and -3)? If not, then why -3?
>>>
>>> At the time this was added ISTR that there was some belief that -2
>>> was used perhaps in an upcoming patch, so I picked -3. I can't find
>>> a -2 use case though so I will switch to -2 instead.
>>>
>>> Re documentation: I think the inline comments where encap_type is
>>> used is sufficient documentation for the 2 negative values.
>>
>> I don't think it is. Inline comments are good to explain the internal
>> behavior, but that's more external behavior.
>
>>> There's
>>> a lot going on in this function and someone wishing to change (or
>>> understand) something is going to have to walk the code and use
>>> cases regardless of a bit of extra verbiage on the encap_value
>>> beyond what's already there. Fully documenting how xfrm_input works
>>> (in all it's use cases) seems beyond the scope of this patch to me.
>>
>> Sure, and that's really not what I'm asking for here. Something like
>> "encap_type=-3 makes xfrm_input jump right back to where it stopped
>> when xfrm_inner_mode_input returned -EINPROGRESS" is useful without
>> having to dive into the mess that is xfrm_input.
>
> If I'm not adding your suggested text into an inline comment where am I doing this?
>
> Bear in mind that encap_type can also have non-negative values, am I documenting
> all these cases too? It just seems like going down this path is asking for the
> entire function to be documented, perhaps I'm missing something though.
>
> Are other people going to be OK with a top of function comment that only documents the single (now) `-2` value for encap_type?

Actually, I will document the "Resume" negative value special cases in a top of function comment. If we want more generalized documentation for this function I think it should be in a different patch/project.

Thanks,
Chris.

> Thanks,
> Chris.


  reply	other threads:[~2024-07-31 18:48 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-14 20:22 [PATCH ipsec-next v5 00/17] Add IP-TFS mode to xfrm Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 01/17] xfrm: config: add CONFIG_XFRM_IPTFS Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 02/17] include: uapi: add ip_tfs_*_hdr packet formats Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 03/17] include: uapi: add IPPROTO_AGGFRAG for AGGFRAG in ESP Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 04/17] xfrm: sysctl: allow configuration of global default values Christian Hopps
2024-07-18 13:13   ` Sabrina Dubroca
2024-07-18 13:15     ` Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 05/17] xfrm: netlink: add config (netlink) options Christian Hopps
2024-07-18 13:45   ` Sabrina Dubroca
2024-07-18 14:08     ` [devel-ipsec] " Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 06/17] xfrm: add mode_cbs module functionality Christian Hopps
2024-07-19  6:14   ` [devel-ipsec] " Florian Westphal
2024-07-20  0:06     ` Christian Hopps
2024-07-25 13:32   ` Sabrina Dubroca
2024-07-30 21:29     ` Christian Hopps
2024-07-31 17:10       ` Sabrina Dubroca
2024-07-31 18:32         ` Christian Hopps
2024-07-31 18:41           ` Christian Hopps [this message]
2024-07-14 20:22 ` [PATCH ipsec-next v5 07/17] xfrm: add generic iptfs defines and functionality Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 08/17] xfrm: iptfs: add new iptfs xfrm mode impl Christian Hopps
2024-07-15 12:39   ` Simon Horman
2024-07-18  5:56     ` [devel-ipsec] " Christian Hopps
2024-07-19  6:16   ` Florian Westphal
2024-07-20  0:30     ` Christian Hopps
2024-07-25 13:33   ` Sabrina Dubroca
2024-07-25 14:56     ` Christian Hopps
2024-07-31 16:29     ` Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 09/17] xfrm: iptfs: add user packet (tunnel ingress) handling Christian Hopps
2024-07-15 12:55   ` Simon Horman
2024-07-18  5:35     ` [devel-ipsec] " Christian Hopps
2024-07-18  6:32       ` Christian Hopps
2024-07-16 14:00   ` kernel test robot
2024-07-14 20:22 ` [PATCH ipsec-next v5 10/17] xfrm: iptfs: share page fragments of inner packets Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 11/17] xfrm: iptfs: add fragmenting of larger than MTU user packets Christian Hopps
2024-07-15 13:12   ` Simon Horman
2024-07-18  5:57     ` [devel-ipsec] " Christian Hopps
2024-07-18  6:56       ` Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 12/17] xfrm: iptfs: add basic receive packet (tunnel egress) handling Christian Hopps
2024-07-15 13:16   ` Simon Horman
2024-07-18  6:14     ` [devel-ipsec] " Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 13/17] xfrm: iptfs: handle received fragmented inner packets Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 14/17] xfrm: iptfs: add reusing received skb for the tunnel egress packet Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 15/17] xfrm: iptfs: add skb-fragment sharing code Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 16/17] xfrm: iptfs: handle reordering of received packets Christian Hopps
2024-07-14 20:22 ` [PATCH ipsec-next v5 17/17] xfrm: iptfs: add tracepoint functionality Christian Hopps
2024-07-15 11:53   ` kernel test robot
2024-07-17  5:21   ` kernel test robot

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=m2ikwl8kjf.fsf@ja.int.chopps.org \
    --to=chopps@chopps.org \
    --cc=chopps@labn.net \
    --cc=devel@linux-ipsec.org \
    --cc=netdev@vger.kernel.org \
    --cc=sd@queasysnail.net \
    --cc=steffen.klassert@secunet.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.