> 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