On 13 July 2017 at 18:38, Jiannan Ouyang <ouya...@fb.com> wrote:
> Hi Joe,
>
>> It's neat to see new tunnel implementations being introduced, and also
>> quite cool that it doesn't require significant code changes to OVS to
>> make this happen. Thanks for looking into this :-)
>
> Thanks :)
>
>> I mentioned on the netdev thread that we should work towards using the
>> rtnetlink interface for using the latest kernel devices, eventually
>> everything should switch over to that configuration path.
>>ยท
>> Do you expect that users will upgrade to the latest kernel to get GTP
>> support? This is certainly the easier method from a
>> development/support perspective. If this is the case, then I don't
>> think we should need many (if any?) changes to the datapath/ directory
>> in OVS. In this case patch #1 could be replaced with a little bit of
>> extra code that pipes the device configuration through
>> lib/dpif-netlink-rtnl.[ch].
>
> I agree with your suggestion.
>
> For code deployment, let's assume uses will upgrade to the latest kernel.
> Nowadays, does OVS tend to have a duplicated tunnel implementation? I noticed
> there are some duplicated tunnel implementation for OVS datapath and the
> "upstream" implementation. What's the plan here?

The code in the OVS tree helps to backport functionality to older
kernels. For example, we currently allow building the OVS tree version
of the module against kernel 3.10, but this kernel didn't have support
for geneve tunnels. So, the compat code provides this functionality
for those older kernels. Depending on the kernel version, how isolated
the feature is, and how important that feature is to users, we may
attempt to provide an implementation of a particular feature in the
OVS tree so that users can use this module with whichever kernel they
like, or we may just request that users upgrade their kernel to get
the newer functionality. Typically the implementation in the OVS tree
is based on the latest code that is available in the Linux tree at the
time that the feature is introduced. Ideally the code directly under
ovs/datapath/ is identical to upstream linux/net/openvswitch/ code,
then the ovs/datapath/compat fleshes out all of the APIs necessary to
build and use that functionality on the older kernel.

It's always easier to ask users to upgrade and not provide an
implementation in the OVS tree - it's a lot of work to support a
backport. That's the background of my question.

For what it's worth, there's some examples about the features
supported on various platforms in Documentation/faq/releases.rst, and
it would be good if your patch could update this as well.

>> I have a broad question with this overall model - Does it assume that
>> the OpenFlow controller is responsible for handling the GTP-C traffic?
>> Then it just programs OVS to match on that GTP-C traffic and forward
>> to the controller? Subsequently, whatever PDP contexts and so on that
>> the controller's GTP-C implementation needs to create, it just sets up
>> equivalent flows for this purpose?
>
> What you said are right, except that the patches are about GTP-U (userplane
> GTP). We expect the OpenFlow controller to handle GTP-U traffics and create
> flows for each PDP context.

OK, so I think this is coming back to me. The kernel implementation
will split out the GTP-C traffic and send it to an independent socket,
where your GTP daemon can process the messages. So, the GTP-C traffic
never hits OVS userspace. Does that sound right?
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to