Hi,

I'm doing an experiment with meter table (ofsoftswitch13/cpqd) in mininet
and found a quite strange behaviour.

I use dscp_remark to label excess traffic then pipeline it to flow table_1.
In table_1 I match the packet based on dscp value then forward it to output
port.

I found that in the table_1, all the packets are matched with the original
dscp rule (dscp=10, tos=0x28); although in stats-meter I can see there are
packets that processed by meter table (so some packet should have already
been remarked). And indeed, in the output port I can see both original and
remarked dscp (with wireshark).

Is it an expected behaviour? Or is it a bug, because it seems that the
dscp_remark is applied after table_1 processing.

For the sake of clarity, here is the flow and meter.

Flow entries:
dpctl unix:/tmp/s1 flow-mod cmd=add,table=0
eth_type=0x800,ip_src=10.0.0.2,ip_dst=10.0.0.1 meter:1 goto:1
dpctl unix:/tmp/s1 flow-mod cmd=add,table=1 eth_type=0x800,ip_dscp=10
apply:output=1
sudo dpctl unix:/tmp/s1 flow-mod cmd=add,table=1 eth_type=0x800,ip_dscp=2
apply:output=1

Meter table:
sudo dpctl unix:/tmp/s1 meter-mod cmd=add,meter=1
dscp_remark:rate=1000,prec_level=1

Flow stats (note that all packets are processed with ip_dscp=10):
{table="0", match="oxm{eth_type="0x800", ipv4_src="10.0.0.2",
ipv4_dst="10.0.0.1"}", dur_s="182", dur_ns="140000", prio="32768",
idle_to="0", hard_to="0", cookie="0x0", pkt_cnt="21637",
byte_cnt="32715144", insts=[meter{meter="1"}, goto{table="1"}]},
{table="1", match="oxm{eth_type="0x800", ip_dscp="10"}", dur_s="182",
dur_ns="101000", prio="32768", idle_to="0", hard_to="0", cookie="0x0",
pkt_cnt="21637", byte_cnt="32715144", insts=[apply{acts=[out{port="1"}]}]},
{table="1", match="oxm{eth_type="0x800", ip_dscp="2"}", dur_s="182",
dur_ns="88000", prio="32768", idle_to="0", hard_to="0", cookie="0x0",
pkt_cnt="0", byte_cnt="0", insts=[apply{acts=[out{port="1"}]}]}]}

Meter stats (there are packets processed by meter table, and I saw both
dscp values in wireshark):
stat_repl{type="mstats", flags="0x0", stats=[{meter= 1"", flow_cnt="0",
pkt_in_cnt="21215", byte_in_cnt="32077080", duration_sec="179",
duration_nsec="595000", bands=[{pkt_band_cnt="9946",
byte_band_cnt="15038352"}]}]}

Any hint would be appreciated. Thank you in advance.

Kind regards,
Hedi Krishna
_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to