On Wed, Mar 6, 2024 at 9:41 PM Naveen Yerramneni via discuss
<[email protected]> wrote:
>
>
>
> > On 07-Mar-2024, at 6:02 AM, Numan Siddique <[email protected]> wrote:
> >
> > On Wed, Mar 6, 2024 at 3:07 PM Naveen Yerramneni via discuss
> > <[email protected]> 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
> >> [email protected]
> >> 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
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss