On Wed, 1 Jul 2026 at 20:17, Timothy Redaelli <[email protected]> wrote:
>
> Split libopenvswitch into two libraries:
>
>  - libopenvswitchutils: containers, utilities, I/O, threading,
>    logging, and OVSDB client modules.
>  - libopenvswitch: datapath, OpenFlow, netdev, dpif, flow,
>    conntrack, and related modules.  Links libopenvswitchutils.
>
> Programs that do not need datapath functionality now link only
> libopenvswitchutils, reducing their dependency footprint:
> ovsdb-server, ovsdb-client, ovsdb-tool, ovs-appctl, vtep-ctl,
> test-lib.
>
> When OVS is built with static DPDK (--with-dpdk=static), these
> programs no longer pull in DPDK code at all.  Stripped binary
> sizes (x86_64):
>
>   Binary           Before     After    Saved
>   ovs-appctl       3,939 KB     346 KB  -91%
>   ovsdb-server     4,255 KB     766 KB  -82%
>   ovsdb-client     4,234 KB     750 KB  -82%
>   ovsdb-tool       4,218 KB     729 KB  -83%
>   vtep-ctl         4,273 KB     847 KB  -80%
>   test-lib         3,935 KB     342 KB  -91%
>
> Binaries that still need libopenvswitch (ovs-vsctl, ovs-dpctl,
> ovs-ofctl, ovs-vswitchd) are unaffected by this change.  Further
> reducing their DPDK dependency requires decoupling dp-packet from
> netdev-dpdk, which is separate follow-up work.
>
> To break a circular dependency between the two libraries,
> ip_parse(), ipv6_parse(), and ipv6_string_mapped() are made
> static inline in packets.h.  These are trivial wrappers around
> inet_pton()/inet_ntop() with no side effects or state.

One alternative would be to remove those trivial wrappers entirely (I
don't see much value in them).
But otherwise this patch lgtm.

Looking fwd to the separate follow-up work :-).

>
> Signed-off-by: Timothy Redaelli <[email protected]>

Reviewed-by: David Marchand <[email protected]>


-- 
David Marchand

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to