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. 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://mail.openvswitch.org/mailman/listinfo/ovs-discuss _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss