Hey there
See the code below. I have a proposal/first-draft for OFPMeterMod
messages but I have a problem with the understanding of the
OF-switch-spec 1.3.0 and also with the calculation of the "len"
attribute in RYU for OFPMeterBandHeader:
- Can you send multiple meter-bands in one OFPMeterMod message?
- From where or how is the "len" attribute in OFPMeterBandDrop calculated?
Snippet from ofproto_v1_3_parser.py
class OFPMeterBandDrop(object):
def __init__(self, type_, len_, rate, burst_size):
super(OFPMeterBandDrop, self).__init__()
self.type = type_
self.len = len_
self.rate = rate
self.burst_size = burst_size
def serialize(self, buf, offset):
meter_offset = offset
self.len = ofproto_v1_3.OFP_METER_BAND_DROP_SIZE
msg_pack_into(ofproto_v1_3.OFP_METER_BAND_DROP_PACK_STR, buf,
meter_offset,
self.type, self.len, self.rate, self.burst_size)
@_set_msg_type(ofproto_v1_3.OFPT_METER_MOD)
class OFPMeterMod(MsgBase):
def __init__(self, datapath, command, flags, meter_id, bands):
super(OFPMeterMod, self).__init__(datapath)
self.command = command
self.flags = flags
self.meter_id = meter_id
self.bands = bands
def _serialize_body(self):
msg_pack_into(ofproto_v1_3.OFP_METER_MOD_PACK_STR, self.buf,
ofproto_v1_3.OFP_HEADER_SIZE,
self.command, self.flags, self.meter_id)
offset = ofproto_v1_3.OFP_METER_MOD_SIZE
for b in self.bands:
b.serialize(self.buf, offset)
offset += b.len
Snippet from the testing-app (example goes on the github-ryu-wiki)
def send_meter_mod(self, datapath):
ofp = datapath.ofproto
ofp_parser = datapath.ofproto_parser
bands = [ofp_parser.OFPMeterBandDrop(type_=ofp.OFPMBT_DROP,
len_=0, rate=10, burst_size=12)]
req = ofp_parser.OFPMeterMod(datapath=datapath,
command=ofp.OFPMC_ADD,
flags=ofp.OFPMF_KBPS,
meter_id=1,
bands=bands)
datapath.send_msg(req)
The code works with the ofsoftswitch13 from
https://github.com/CPqD/ofsoftswitch13. This is the only softswitch I
know that works with meter-bands. At the moment, there is only the
drop-meter-band supported in the softswitch, but if this works, the
DSCP meter-band will also do because it's almost the same struct.
As always, thanks in advance, g *pae
--
ZHAW - Zurich University of Applied Sciences
Institute of Applied Information Technology InIT
InIT Cloud Computing Laboratory ICCLab
Philipp Aeschlimann
Researcher
Obere Kirchgasse 2
CH-8401 Winterthur
Tel. +41 58 934 6964 (intern 6964)
mailto:[email protected]
www.zhaw.ch
www.cloudcomp.ch
GPG IDKey: 647E122E
Fingerprint: 47B7 8D8A 98D1 E91D 4B7C E261 D88C BE9E 647E 122E
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel