On 1/13/26 2:20 PM, Dumitru Ceara wrote:
> OVN relies heavily in its OpenFlow rules on the registers that are
> provided by OVS.  With the OVN feature set increasing we are slowly but
> surely running out of register space.
> 
> The suggestion to increase the number of OVS registers again (last time
> this happened was with 847b8b027af4 ("Increase number of registers to
> 16.")), keeps being brought up on the mailing list, most recently in [0]
> and [1].  The alternative would be to work around the register space
> issue in OVN by using approaches like pushing/popping registers to the
> stack.  But that would complicate the OVN pipeline even further.
> 
> Instead this patch increases the number of general purpose 32-bit
> registers to 32.  That implies that the number of 64-bit registers
> (xreg) also increases to 16 and the number of 128-bit registers (xxreg)
> increases to 8.
> 
> There's currently not enough space in the NXM_NX class for the new 16
> registers so we use the NXOXM_ET class instead.  According to commit
> 508a933809f8 ("nx-match: Add support for experimenter OXM.") this is the
> right class to use for field extensions.
> 
> NOTE: Commit 85be6684f8af ("meta-flow: Fix the NXM_NX_* names of xxreg2
> and xxreg3.") had added placeholders for future expansion for four more
> xxregs (xxreg4-7) in the NXM_NX class.  However, since now the
> new reg16-31 registers are added to the NXOXM_ET class, we also add
> the corresponding xxreg4-7 to it.
> 
> [0] https://mail.openvswitch.org/pipermail/ovs-dev/2025-October/426703.html
> [1] https://mail.openvswitch.org/pipermail/ovs-dev/2025-December/428768.html
> 
> Suggested-by: Ilya Maximets <[email protected]>
> Reported-at: https://issues.redhat.com/browse/FDP-2843
> Signed-off-by: Dumitru Ceara <[email protected]>
> ---
> V3:
> - Addressed Eelco's comments:
>   - fixed up the NEWS item
>   - fixed up the Double-Extended Register documentation.
> - Addressed Ilya's comments I had missed in v2:
>   - extended the existing ofproto-dpif.at register tests
> V2:
> - Addressed Ilya's comments:
>   - retitled commit
>   - updated NEWS item
>   - updated meta-flow comments and documentation
>   - added ovs-ofctl.at and test_ofp.py tests
> ---
>  NEWS                                          |   1 +
>  include/openflow/nicira-ext.h                 |   2 +-
>  include/openvswitch/flow.h                    |   8 +-
>  include/openvswitch/meta-flow.h               | 142 +++++++--
>  lib/dpif-netdev-extract-avx512.c              |   2 +-
>  lib/flow.c                                    |  20 +-
>  lib/flow.h                                    |   2 +-
>  lib/match.c                                   |   2 +-
>  lib/meta-flow.xml                             |  66 +++-
>  lib/nx-match.c                                |   2 +-
>  lib/odp-util.c                                |   6 +-
>  lib/odp-util.h                                |   2 +-
>  lib/ofp-match.c                               |   2 +-
>  ofproto/ofproto-dpif-rid.h                    |   2 +-
>  ofproto/ofproto-dpif-xlate.c                  |   2 +-
>  python/ovs/tests/test_ofp.py                  | 202 +++++++++++++
>  .../ovs_build_helpers/extract_ofp_fields.py   |   2 +-
>  tests/ofproto-dpif.at                         |  75 +++--
>  tests/ofproto.at                              |   4 +-
>  tests/ovs-ofctl.at                            | 284 +++++++++++++++++-
>  20 files changed, 730 insertions(+), 98 deletions(-)

Thanks!  I added the <code></code> highlight to the code points in the
docs and applied the change.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to