[ovs-dev] [PATCH] ovn: Support chassis option in "l2gateway" logical ports

Numan Siddique nusiddiq at redhat.com
Fri Jul 8 14:36:32 UTC 2016


On Jul 8, 2016 8:04 PM, "Russell Bryant" <russell at ovn.org> wrote:
>
>
>
> On Thu, Jul 7, 2016 at 11:47 PM, Numan Siddique <nusiddiq at redhat.com>
wrote:
>>
>> Thanks for the review Russel.
>> Please see comments inline.
>>
>> On Fri, Jul 8, 2016 at 1:19 AM, Russell Bryant <russell at ovn.org> wrote:
>>>
>>> Thanks for working on this!  A few comments ...
>>>
>>> On Mon, Jul 4, 2016 at 7:10 AM, Numan Siddique <nusiddiq at redhat.com>
wrote:
>>>>
>>>> ovn-controller will now bind the l2gateway logical ports.
>>>>
>>>> Signed-Off-by: Numan Siddique <nusiddiq at redhat.com>
>>>> ---
>>>>  ovn/TODO                 |  9 ---------
>>>>  ovn/controller/binding.c | 33 +++++++++++++++++++++++----------
>>>>  ovn/ovn-nb.xml           |  7 +++++++
>>>>  ovn/ovn-sb.xml           |  6 ++++++
>>>>  tests/ovn.at             |  5 +----
>>>>  5 files changed, 37 insertions(+), 23 deletions(-)
>>>>
>>>> diff --git a/ovn/TODO b/ovn/TODO
>>>> index 3f358c2..5b9d829 100644
>>>> --- a/ovn/TODO
>>>> +++ b/ovn/TODO
>>>> @@ -249,12 +249,3 @@ large.
>>>>  ** Support log option.
>>>>
>>>>  * Software L2 gateway
>>>
>>>
>>> You can remove this line, as well.
>>>
>>>>
>>>> -
>>>> -** Support "chassis" option in Logical_Switch_Port with type of
"l2gateway".
>>>> -
>>>> -   Right now an "l2gateway" port is bound to a chassis by setting the
"chassis"
>>>> -   column of the port binding in the southbound database directly.
We should
>>>> -   support a "chassis" option in the "options" column of the
>>>> -   "Logical_Switch_Port" in the northbound database.  This would bring
>>>> -   "l2gateway" into alignment with how chassis binding is done for L3
gateways
>>>> -   (a "chassis" option for Logical_Router).
>>>> diff --git a/ovn/controller/binding.c b/ovn/controller/binding.c
>>>> index 4e5c1df..d28cd80 100644
>>>> --- a/ovn/controller/binding.c
>>>> +++ b/ovn/controller/binding.c
>>>> @@ -222,16 +222,29 @@ consider_local_datapath(struct controller_ctx
*ctx, struct shash *lports,
>>>>              }
>>>>              sbrec_port_binding_set_chassis(binding_rec, chassis_rec);
>>>>          }
>>>> -    } else if (!strcmp(binding_rec->type, "l2gateway")
>>>> -               && binding_rec->chassis == chassis_rec) {
>>>> -        /* A locally bound L2 gateway port.
>>>> -         *
>>>> -         * ovn-controller does not bind gateway ports itself.
>>>> -         * Choosing a chassis for a gateway port is left
>>>> -         * up to an entity external to OVN. */
>>>> -        sset_add(&all_lports, binding_rec->logical_port);
>>>> -        add_local_datapath(local_datapaths, binding_rec,
>>>> -                           &binding_rec->header_.uuid);
>>>> +    } else if (!strcmp(binding_rec->type, "l2gateway")) {
>>>> +        const char *chassis_id = smap_get(&binding_rec->options,
"chassis");
>>>
>>>
>>> Can we change this to "l2gateway-chassis" instead of just "chassis"?
That will make it consistent with the L3 gateway option name, which is
"gateway-chassis", corresponding to the "gateway" port type.my ri
>>
>>
>>  Logical_Router.options is supporting "chassis"
>>>>
>>>> in OVN NB DB
>> https://github.com/openvswitch/ovs/blob/master/ovn/ovn-nb.xml#L746
>> ​ and Port_Binding.options is supporting "gateway-chassis" in OVN SB DB (
>> https://github.com/openvswitch/ovs/blob/master/ovn/ovn-sb.xml#L1600
>> ​).
>>
>> Shall I follow the same to be consistent ?
>
>
> I would use "l2gateway-chassis" on both.  In the l2gateway case, we're
setting an option on the port, and all other Logical_Switch_Port options
are copied to Port_Binding directly.

Thanks. The v2 of the patch does the same.

Regards
Numan

>
> The "gateway-chassis" case is a little different since the original
option is set on Logical_Router.  I probably would have chosen to make it
"gateway-chassis" in both cases, but I guess it's not a big deal.
>
> --
> Russell Bryant



More information about the dev mailing list