[ovs-dev] [PATCH RESEND ovs-dev v1 2/2] dpif-netdev: Return error code when no mark available.

xiangxia.m.yue at gmail.com xiangxia.m.yue at gmail.com
Tue Jun 9 00:53:41 UTC 2020

From: Tonghao Zhang <xiangxia.m.yue at gmail.com>

The max number of mark is (UINT32_MAX - 1), that is
enough to be used. But theoretically, if there are no
mark available, the later different flows will shared
the mark INVALID_FLOW_MARK, that may break the function.
If there are no available mark to be used, return error

Cc: Yuanhan Liu <yliu at fridaylinux.org>
Cc: Ian Stokes <ian.stokes at intel.com>
Cc: Ben Pfaff <blp at ovn.org>
Cc: William Tu <u9012063 at gmail.com>
Signed-off-by: Tonghao Zhang <xiangxia.m.yue at gmail.com>
 lib/dpif-netdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index e9d2e1267335..401294744044 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -2441,6 +2441,7 @@ dp_netdev_flow_offload_put(struct dp_flow_offload_item *offload)
         mark = flow_mark_alloc();
         if (mark == INVALID_FLOW_MARK) {
             VLOG_ERR("Failed to allocate flow mark!\n");
+            return -1;
     info.flow_mark = mark;

More information about the dev mailing list