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