> On 07-Mar-2024, at 9:10 PM, Numan Siddique <num...@ovn.org> wrote:
> 
> On Wed, Mar 6, 2024 at 9:41 PM Naveen Yerramneni via discuss
> <ovs-discuss@openvswitch.org> wrote:
>> 
>> 
>> 
>>> On 07-Mar-2024, at 6:02 AM, Numan Siddique <num...@ovn.org> wrote:
>>> 
>>> On Wed, Mar 6, 2024 at 3:07 PM Naveen Yerramneni via discuss
>>> <ovs-discuss@openvswitch.org> wrote:
>>>> 
>>>> Hi All,
>>>> 
>>>> We are exploring the possibility of doing some Flow_Table settings (like 
>>>> classifier optimizations)  through OVN.
>>>> 
>>>> One possible option could be to expose this in ovn-nb config and propagate 
>>>> it to ovn-sb.
>>>> - Add new table with name “Flow_Config” which stores settings (similar to 
>>>> Flow_Table in  vwitchd.conf.db)
>>>> - Add new columns “flow_table_in_settings” and “flow_table_out_settings” 
>>>> in NB_Global and SB_Global tables.
>>>>  The type of these columns is map of <int>:<Flow_Config_entry> where key 
>>>> is logical pipeline stage number and
>>>> value points to a row entry in Flow_Config table.
>>>> 
>>>> OVN controller uses this information and configures vwitchd.config.db.
>>>> - Flow_Table rows in vswitchd.conf.db are populated using Flow_Config 
>>>> table in southbound.
>>>> - Bridge table's flow_tables column is populated using keys (logical table 
>>>> numbers) in flow_table_in_settings and
>>>> flow_table_out_settings columns of SB_Global table . During configuration, 
>>>> OVN controller adds offset
>>>> OFTABLE_LOG_INGRESS_PIPELINE for ingress tables and 
>>>> OFTABLE_LOG_EGRESS_PIPELINE for egress pipelines.
>>>> 
>>>> Probably a new command can be added to northd to dump the logical switch 
>>>> and logical router
>>>> ingress and egress pipeline stage table names and numbers for reference.
>>>> 
>>>> Please share your thoughts/inputs on this.
>>> 
>>> Generally,  to configure anything which is chassis related,  we have
>>> used the local openvswitch table.  Each ovn-controller would read
>>> that and configure accordingly.  One example is - 
>>> ovn-openflow-probe-interval.
>>> 
>>> Can't we do something similar here ?  I understand that this config
>>> needs to be done on each chassis,  but if it is a one time thing,
>>> then perhaps it should not be a big concern.  Does this approach work for 
>>> you ?
>>> 
>>> Thanks
>>> Numan
>> 
>> Hi Numan,
>> 
>> Thanks for the reply.
>> 
>> The reason why I thought of putting this config in northbound is:
>>  - Logical table numbers and physical table numbers can potentially change 
>> release to release.
>>  - If we have this config in northbound, it is possible to add some 
>> automation in CMS plug-in to reconfigure
>>    the flow_table_settings on the new logical table numbers when northd gets 
>> upgraded. CMS plug-in can
>>    have its own logic to find out the logical table numbers.
>>    Ex: CMS plug-in  can get the logical table numbers either by parsing the 
>> northd new command
>>    output that dumps logical pipeline table names and numbers (or) by other 
>> means.
>> 
>> 
>> If the recommendation is to get this done on the chassis side then, I can 
>> think of below alternative.
>>  - Update northd to dump "logical pipeline stage name: logical table number” 
>> in options:logical-table-mapping
>>    of SB_Global table.
>>  - Update OVN controller to dump the "logical pipeline stage name: physical 
>> table number" mapping
>>    to the external_ids:oftable-mapping of openvswitch table whenever SB 
>> entry get updated. Additionally, we can
>>    possibly add to new command to ovn-controller to dump this 
>> oftable-mapping.
>> - Some automation can be done on the chassis side to use the table mapping 
>> information that ovn-controller dumps
>>   and configure the vswitchd.conf.db.
>> 
>> 
>> Please let me know your suggestions.
> 
> Ok.  I was not aware of the "Flow_Table" feature of OVS.  I think it
> makes sense to put the config in Northbound db
> and propagate it down to OVS via ovn-controller.
> 
> This is what I think can be done:
> 
> 1.  Add new Northbound tables - Switch_Pipeline_Config and
> Router_Pipeline_Config.
> 2.  ovn-northd will create rows in these tables for each stage.
> 3.  CMS will set the config for each row (if it wants to)
> 4. ovn-northd will replicate these to Southbound db.
> 5. ovn-controller will aggregate the switch stage and router stage
> configs since both the stages share the same table number.
> 6. ovn-controller will configure the OVS Flow_Table.
> 
> CMS doesn't need to know the actual physical flow table numbers.
> 
> Switch_Pipeline_Config table can have columns like
> 
> Switch_Pipeline_Config
>    -  name  (stage name)
>    -  config  (smap)
> 
> 
> What do you think ?   It's worth taking opinion and feedback from
> others before taking this approach.

This approach looks fine.
Do you think exposing the tables as Ingress_Pipeline_Config and 
Egress_Pipeline_Config
is better since logical switch and router share same table number ?

Ingress_Pipeline_Config/Egress_Pipeline_Config table schema can look like:
  - config  (smap)
  - options  (ls_stage_name=<>, lr_stage_name=<>)

If there is no stage for switch/router then, the respective name is empty.

Thanks,
Naveen

> 
> Thanks
> Numan
> 
> 
> 
>> 
>> Thanks,
>> Naveen
>> 
>> 
>>>> 
>>>> Thanks,
>>>> Naveen
>>>> _______________________________________________
>>>> discuss mailing list
>>>> disc...@openvswitch.org
>>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddiscuss&d=DwIFaQ&c=s883GpUCOChKOHiocYtGcg&r=2PQjSDR7A28z1kXE1ptSm6X36oL_nCq1XxeEt7FkLmA&m=U830KSvmakLVHWvUoXFV_ohX9oM93MLYKIx1e1QXRv5yv5ftXaYXFm2eWao0W2pd&s=tyS_z11uBp8uDvvlAJ7bUUVP_Qw5RMp3p3lAac52fm8&e=
>> 
>> _______________________________________________
>> discuss mailing list
>> disc...@openvswitch.org
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddiscuss&d=DwIFaQ&c=s883GpUCOChKOHiocYtGcg&r=2PQjSDR7A28z1kXE1ptSm6X36oL_nCq1XxeEt7FkLmA&m=cyTBvnpquI1D9dbzZ082ZUW9fbbw-YNlXCfw0fEL6nW___f7FCOfWjkmnKB14OB7&s=hkXIvJTDQUqwSqZtdO2jCfKyTx-U8HiL1R_Fo16kqM8&e=

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to