This routine should return enum ofperr, but in a couple of places doesn't. When adding one more meter when meter table is full, this has the result of generating an incorrect error message.
Signed-off-by: Tony van der Peet <[email protected]> --- ofproto/ofproto-dpif.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index b7acfa246..40fbbf98d 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -5940,11 +5940,11 @@ meter_set(struct ofproto *ofproto_, ofproto_meter_id *meter_id, /* Provider ID unknown. Use backer to allocate a new DP meter */ if (meter_id->uint32 == UINT32_MAX) { if (!ofproto->backer->meter_ids) { - return EFBIG; /* Datapath does not support meter. */ + return OFPERR_OFPMMFC_OUT_OF_METERS; /* Datapath does not support meter. */ } if(!id_pool_alloc_id(ofproto->backer->meter_ids, &meter_id->uint32)) { - return ENOMEM; /* Can't allocate a DP meter. */ + return OFPERR_OFPMMFC_OUT_OF_METERS; /* Can't allocate a DP meter. */ } } -- 2.19.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
