mirror of
https://github.com/openvswitch/ovs
synced 2025-10-29 15:28:56 +00:00
ofproto: Use proper error code when meter_id is out of range.
Use OUT_OF_METERS when given meter_id is greater than what is supported by the datapath. Retain the INVALID_METER error code for the meter_ids outside of the range supported by the specification. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
committed by
Ben Pfaff
parent
717de9ff03
commit
b31e8700fa
@@ -4632,9 +4632,12 @@ handle_meter_mod(struct ofconn *ofconn, const struct ofp_header *oh)
|
||||
|
||||
if (mm.command != OFPMC13_DELETE) {
|
||||
/* Fails also when meters are not implemented by the provider. */
|
||||
if (!meter_id || meter_id > ofproto->meter_features.max_meters) {
|
||||
if (meter_id == 0 || meter_id > OFPM13_MAX) {
|
||||
error = OFPERR_OFPMMFC_INVALID_METER;
|
||||
goto exit_free_bands;
|
||||
} else if (meter_id > ofproto->meter_features.max_meters) {
|
||||
error = OFPERR_OFPMMFC_OUT_OF_METERS;
|
||||
goto exit_free_bands;
|
||||
}
|
||||
if (mm.meter.n_bands > ofproto->meter_features.max_bands) {
|
||||
error = OFPERR_OFPMMFC_OUT_OF_BANDS;
|
||||
|
||||
Reference in New Issue
Block a user