Michael,

On Tue, Aug 09, 2022 at 10:31:47AM +0000, Scharf, Michael wrote:
> As different interfaces can have a different MTU, it is not uncommen to
> use different MSS values for connections originating/terminating on
> different interfaces. At least the Linux kernel apparently picks the MSS
> per interface. As a result, it hardly makes sense to model in YANG a
> single MSS value for all interfaces. Instead, the MSS value would have to
> be per interface and set in a corresponding YANG model for the interface.

Knowing the MSS that the host would pick for sessions over a given interface
might be "nice", but I would tend to agree that it might not make great
sense in the model.

> Theoretically, we could do this for MSS, e.g., by augmentation. But for
> other parameters, such as hardware offload configuration, this would get
> complex and technology-specific. As a result, the proposed YANG model
> stays away from interface-specific parameters.

The underlying issue that Camilo is trying to raise isn't so much
interface-specific as it is session specific.  Consider the following
examples:

https://www.juniper.net/documentation/us/en/software/junos/bgp/topics/ref/statement/tcp-mss-edit-protocols-bgp.html
https://www.cisco.com/c/en/us/td/docs/iosxr/cisco8000/bgp/73x/b-bgp-cg-8k-73x/implementing-bgp.html#task_sq1_xdk_4jb

The inconsistency Camilo mentioned aside, there are two aspects to sessions
that are relevant to the management information:

- For the session, can you see the effective parameter?  (In this case, no.)
- How do you configure the parameter in question?

For the first point, it might make sense to expose the effective MSS in the 
tcp/connections container.  Doing so in a typedef defined in this module may
be helpful for the second point.

For the second point, TCP sessions are created outside of the YANG module.
Just like parameters like the endpoints and ports need to be configured
(some explicitly, some implicitly) by other modules, MSS and other session
parameters may be needed.  The typedef noted above provides a common way to
model that configuration state and is supported by the operational state
above.

Is a typedef required?  No... but it makes many things easier since it
avoids everyone reinventing items like constraints, etc.

-- Jeff

_______________________________________________
GROW mailing list
GROW@ietf.org
https://www.ietf.org/mailman/listinfo/grow

Reply via email to