X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fofproto.c;h=f97b9bc0eea723dd6b579d50f16bca46dd473e8c;hb=e555eb7c38c38b170c165b2e4b9cd222f0fd20e8;hp=02769fe8f4dd5532212a1d6001b57737c8c1c7ed;hpb=1b63b91eb085b381d0a765855a11a27d9d43c27d;p=sliver-openvswitch.git diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 02769fe8f..f97b9bc0e 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -2917,12 +2917,12 @@ handle_table_stats_request(struct ofconn *ofconn, for (i = 0; i < p->n_tables; i++) { ots[i].table_id = i; sprintf(ots[i].name, "table%zu", i); - ots[i].match = htonll(OFPXMT12_MASK); - ots[i].wildcards = htonll(OFPXMT12_MASK); + ots[i].match = htonll(OFPXMT13_MASK); + ots[i].wildcards = htonll(OFPXMT13_MASK); ots[i].write_actions = htonl(OFPAT11_OUTPUT); ots[i].apply_actions = htonl(OFPAT11_OUTPUT); - ots[i].write_setfields = htonll(OFPXMT12_MASK); - ots[i].apply_setfields = htonll(OFPXMT12_MASK); + ots[i].write_setfields = htonll(OFPXMT13_MASK); + ots[i].apply_setfields = htonll(OFPXMT13_MASK); ots[i].metadata_match = htonll(UINT64_MAX); ots[i].metadata_write = htonll(UINT64_MAX); ots[i].instructions = htonl(OFPIT11_ALL); @@ -4920,7 +4920,7 @@ handle_add_meter(struct ofproto *ofproto, struct ofputil_meter_mod *mm) ovs_assert(provider_meter_id.uint32 != UINT32_MAX); *meterp = meter_create(&mm->meter, provider_meter_id); } - return 0; + return error; } static enum ofperr @@ -4928,15 +4928,17 @@ handle_modify_meter(struct ofproto *ofproto, struct ofputil_meter_mod *mm) { struct meter *meter = ofproto->meters[mm->meter.meter_id]; enum ofperr error; + uint32_t provider_meter_id; if (!meter) { return OFPERR_OFPMMFC_UNKNOWN_METER; } + provider_meter_id = meter->provider_meter_id.uint32; error = ofproto->ofproto_class->meter_set(ofproto, &meter->provider_meter_id, &mm->meter); - ovs_assert(meter->provider_meter_id.uint32 != UINT32_MAX); + ovs_assert(meter->provider_meter_id.uint32 == provider_meter_id); if (!error) { meter_update(meter, &mm->meter); }