MeterMod

MeterMod message is used by the controller to modify the meter. For a command of Add, if a meter entry with the same meter_id already exists, an Error message is sent with type MeterModFailed and code MeterExists. For a command of Modify, the existing meter is removed before a modified new entry is added. An error message with the same type (MeterModFailed) is sent with codes defined in the following: a meter entry with a new meter_id: code UnknownMeter the meter entry cannot be added by the switch due to lack of space: code OutOfMeters the meter entry cannot be added by the switch due to hardware or other restrictions: OutOfMeters For a command of Delete, no action is taken if the meter_id does not exist. Otherwise, the meter is deleted, along with associated flows. All meters (except for virtual meters) can be deleted with meter_id All.
Initiator
Controller
Acknowledged
No

Not Defined
This message is not defined in this version of the protocol.

Not Defined
This message is not defined in this version of the protocol.

Not Defined
This message is not defined in this version of the protocol.

Structure

MeterMod has a header, 2 byte command, 2 byte flags, 4 byte meter ID and meter band header. Meter ID starts with 1 up to what the switch can support. Additionally, virtual meters Max, SlowPath, Controller and All are defined but not used by flows. The field band includes a list of rate bands, out of which only one can be used at any moment. The field burst_size is only used with flag Burst. Packets are dropped if the rate is larger than the value defined in the field rate with band type Drop. With band type DcspRemark, the prec_level field defines the reduction amount of drop procedence.

MeterMod Structure

Name Bits Byte Ordering Constraints
command 16 MSBF See below
flags 16 MSBF See below
meter_id 32 MSBF See below
MeterBand[] - - MeterBand

MeterBand Structure

Name Bits Byte Ordering Constraints
type 16 MSBF see below
len 16 MSBF ≥ 16
rate 32 MSBF none
burst_size 32 MSBF none
experimenter_id 32 MSBF type = Experimenter

MeterMod Constraints

Field Name Value
Command Add 0x0000
Modify 0x0001
Delete 0x0002
Flags kbps 0x0001
pkps 0x0002
burst 0x0004
stats 0x0008
meter_id General meter id 0x00000000..0xFFFF0000
Slow datapath 0xfffffffd
Controller 0xfffffffe
All 0xffffffff

MeterBand Constraints

Field Name Value
type Drop 0x0001
DSCP Remark 0x0002
Experimenter 0xFFFF

References

OpenFlow Switch Specification 1.3.0, pages 58-60

Structure

MeterMod has a header, 2 byte command, 2 byte flags, 4 byte meter ID and meter band header. Meter ID starts with 1 up to what the switch can support. Additionally, virtual meters Max, SlowPath, Controller and All are defined but not used by flows. The field band includes a list of rate bands, out of which only one can be used at any moment. The field burst_size is only used with flag Burst. Packets are dropped if the rate is larger than the value defined in the field rate with band type Drop. With band type DcspRemark, the prec_level field defines the reduction amount of drop procedence.

MeterMod Structure

Name Bits Byte Ordering Constraints
command 16 MSBF See below
flags 16 MSBF See below
meter_id 32 MSBF See below
MeterBand[] - - MeterBand

MeterBand Structure

Name Bits Byte Ordering Constraints
type 16 MSBF See below
len 16 MSBF ≥ 16
rate 32 MSBF none
burst_size 32 MSBF none
experimenter_id 32 MSBF type = Experimenter

MeterMod Constraints

Field Name Value
Command Add 0x0000
Modify 0x0001
Delete 0x0002
Flags kbps 0x0001
pkps 0x0002
burst 0x0004
stats 0x0008
Field Name Value
meter_id General meter id 0x00000000..0xFFFF0000
Slow datapath 0xFFFFFFFD
Controller 0xFFFFFFFE
All 0xFFFFFFFF

MeterBand Constraints

Field Name Value
type Drop 0x0001
DSCP Remark 0x0002
Experimenter 0xFFFF

References

OpenFlow Switch Specification 1.3.1, pages 69-71

Coming soon
This content is under development.

Coming soon
This content is under development.

Coming soon
This content is under development.