On Mon, May 22, 2023 at 9:55 AM Dumitru Ceara <dce...@redhat.com> wrote:
>
> On 5/22/23 15:42, Ihar Hrachyshka wrote:
> > On Mon, May 22, 2023 at 7:55 AM Dumitru Ceara <dce...@redhat.com> wrote:
> >>
> >> On 5/17/23 18:46, Ihar Hrachyshka wrote:
> >>> Thank you Dumitru! See below.
> >>>
> >>> On Tue, May 16, 2023 at 9:41 AM Dumitru Ceara <dce...@redhat.com> wrote:
> >>>> I'm not necessarily rejecting this change.  I just wanted to bring up an
> >>>> alternative approach (I'm not sure if it's possible to implement it 
> >>>> though):
> >>>>
> >>>> The CMS (e.g., Neutron) probably knows before hand the reduced MTU value
> >>>> it should impose on the localnet port.  That means it might be possible
> >>>> to just implement all this through logical flows that use
> >>>> 'check_pkt_larger()'.
> >>>>
> >>>
> >>> I think I mentioned this alternative in my cover letter for the
> >>> series. (At least one of the variations.)
> >>>
> >>> I don't understand the specifics of what you are describing here
> >>> though. Yes, CMS may do calculations for the "desired path MTU". But
> >>> what's the mechanism for CMS to pass this information down to the OVN
> >>> controller? ACL? I don't think the space of possible actions that
> >>> would allow CMS itself to define the behavior is available to CMS.
> >>>
> >>> Perhaps you mean (as I think we discussed before in private) the
> >>> approach where OVN northd creates Logical_Flow objects that would
> >>> implement the behavior. If so, yes that could be possible. But note
> >>> that northd doesn't know the desired path MTU (because it's not CMS
> >>> and OVN northbound database API doesn't support MTU primitive for
> >>> ports.) So the best we could do in the alternative way is implement
> >>> half of the solution via Logical_Flow (the one that sends ICMP replies
> >>> for "too-big" frames), leaving the other half (tagging the "too-big"
> >>> frames based on interface MTU for processing by the Logical_Flows) to
> >>> OVN controller. I think I listed this variation of the approach in my
> >>> cover letter, but please let me know if it's not sufficient.
> >>>
> >>> (The split could be avoided if OVN adds a MTU attribute to its ports.
> >>> But I of course am not trying to tackle this in this series, for
> >>> obvious reasons. But MTU for ports is - in my mind - a worthy feature
> >>> to have in OVN, if you ask me.)
> >>
> >> I was referring to this last part: adding MTU for ports and ovn-northd
> >> translating those to logical flows that use check_pkt_larger() and set
> >> REGBIT_PKT_LARGER.  I was also hoping to see logical flows that generate
> >> the ICMP error packets.  But there's indeed no obvious way of doing that
> >> because we need to act only on traffic that's destined to remote
> >> hypervisors and that's not really an ovn-northd concept but more of an
> >> ovn-controller one.
> >>
> >> If we go for your current approach and later add MTU for OVN ports, do
> >> we need to be careful now in order to avoid complicated upgrades later?
> >>
> >
> > I'm trying to think what complications could arise. Isn't it just
> > generating effectively the same flows, now via Logical_Flow path? The
> > flows act on local frames generated by regular VIF ports, so it
> > shouldn't affect the rest of cluster that e.g. some of them are
> > generated by Logical_Flow path and some through the proposed solution.
> > Or am I talking about something else?
> >
>
> Assuming your current approach is accepted it means ovn-controller will
> automatically compute min MTU to use for multi-chassis ports.  But if we
> add an explicit OVN port MTU configuration what do we do with the
> automatic computation?
>
> Do we leave it in place or do we remove it?

We'll make OVN LSP `mtu` override interface-derived value. (If
ovn-controller sees `mtu` set for LSP, it seizes its operation;
otherwise it sets flows itself.)

>
> If we remove it it means we'll break upgrades as northd is upgraded last
> and it will only set the OVN port binding MTU after it gets upgraded.
>

We'll have both for one LTS release and sunset the interface-derived
value, if needed?

> If we leave it in place I'm not sure what the benefit of the explicit
> MTU is.  I might be wrong though.

There are benefits of OVN LSP API `mtu` regardless of Path MTU
Discovery series. For one, OVN could enforce its MTU on VIF interfaces
(set it in `mtu_request`). This would also potentially allow a
chassisA to inject Path MTU Discovery flows when `mtu` is changed on
chassisB independently of ports hosted on chassisA. Right now
ovn-controller is aware of MTUs for the ports it owns, but not for the
ports on other chassis.

I wouldn't look at `mtu` as OVN API as just a means to simplify the
task for Path MTU, there are other benefits too.

>
> Regards,
> Dumitru
>

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to