On 10/11/2014 01:22 AM, Zoltán Lajos Kis wrote: > Hello Aravind, > > You still need to use an output action in step 3. The output action selects > the port to use, and the queue id selects the queue on the given output port.
Thanks, Zoltan. My traffic now makes it to the other host, but it's not following the queue characteristics. Rate at which traffic is seen at server before programming queue: [ 13] 0.0- 1.0 sec 6026 KBytes 49368 Kbits/sec 0.069 ms 52/ 4250 (1.2%) [ 13] 1.0- 2.0 sec 6092 KBytes 49909 Kbits/sec 0.057 ms 11/ 4255 (0.26%) [ 13] 2.0- 3.0 sec 6074 KBytes 49757 Kbits/sec 0.093 ms 15/ 4246 (0.35%) Program queues and flows to use the queue: $ sudo dpctl unix:/tmp/s1 queue-mod 1 1 4 $ sudo dpctl unix:/tmp/s1 queue-mod 1 2 1 $ sudo dpctl unix:/tmp/s1 flow-mod cmd=add,table=3 meta=0x6,in_port=2 apply:output:1 apply:queue1 $ sudo dpctl unix:/tmp/s1 flow-mod cmd=add,table=4 meta=0x11,in_port=2 apply:output:1 apply:queue2 Rate at which traffic is seen at server before programming queue: [ 13] 59.0-60.0 sec 6006 KBytes 49204 Kbits/sec 0.069 ms 64/ 4248 (1.5%) [ 13] 60.0-61.0 sec 6075 KBytes 49768 Kbits/sec 0.082 ms 16/ 4248 (0.38%) [ 13] 61.0-62.0 sec 6003 KBytes 49180 Kbits/sec 0.072 ms 75/ 4257 (1.8%) Thus, my TCP traffic still suffers. [ 13] 1546.0-1547.0 sec 5551 KBytes 45474 Kbits/sec [ 13] 1547.0-1548.0 sec 5638 KBytes 46186 Kbits/sec [ 13] 1548.0-1549.0 sec 5571 KBytes 45640 Kbits/sec [ 13] 1549.0-1550.0 sec 992 KBytes 8124 Kbits/sec [ 13] 1550.0-1551.0 sec 566 KBytes 4634 Kbits/sec [ 13] 1551.0-1552.0 sec 546 KBytes 4471 Kbits/sec Thanks, > BR, > Zoltan > > >> -----Original Message----- >> From: openflow-discuss [mailto:openflow-discuss- >> boun...@lists.stanford.edu] On Behalf Of Aravindhan Dhanasekaran >> Sent: Saturday, October 11, 2014 6:50 AM >> To: openflow-discuss@lists.stanford.edu >> Subject: [openflow-discuss] Using queues in OpenFlow soft switch 13 >> >> [I believe this to be more of a ofsoftswitch specific question, but I'm >> posting it >> here as ofsoftswitch folks follow this list. Apologies for the wide >> distribution.] >> >> Hello, >> >> I'm trying to use queues in ofsoftswitch13 for a small traffic >> shaping/limiting >> experiment as discussed at http://archive.openflow.org/wk/index.php/Slicing >> >> I'm using top-of-trunk versions of Mininet and ofsoftswitch13 in my testbed >> and have two streams of TCP and UDP traffic. >> >> My topology: >> h1 [eth1] <-----> [s1-eth1] s1 [s1-eth2] <-----> [eth1] h2 >> >> My flow tables: >> $ sudo dpctl unix:/tmp/s1 stats-flow >> {table="0", match="oxm{eth_type="0x800", ip_proto="6"}", >> dur_s="3740", dur_ns="249000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="4000521", byte_cnt="4093372606", >> insts=[meta{meta="0x6", mask="0xffffffffffffffff"}, goto{table="3"}]}, >> >> {table="0", match="oxm{eth_type="0x800", ip_proto="17"}", >> dur_s="2622", dur_ns="608000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="65574", byte_cnt="99147888", >> insts=[meta{meta="0x11", mask="0xffffffffffffffff"}, goto{table="4"}]}, >> {table="3", match="oxm{in_port="1", metadata="0x6"}", >> dur_s="3728", dur_ns="131000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="1355622", byte_cnt="90368912", >> insts=[apply{acts=[out{port="2"}]}]}, >> {table="3", match="oxm{in_port="2", metadata="0x6"}", >> dur_s="3728", dur_ns="114000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="2644899", byte_cnt="4003003694", >> insts=[apply{acts=[out{port="1"}]}]}, >> {table="4", match="oxm{in_port="1", metadata="0x17"}", >> dur_s="2670", dur_ns="800000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="3", byte_cnt="4536", >> insts=[apply{acts=[out{port="2"}]}]}, >> {table="4", match="oxm{in_port="2", metadata="0x17"}", >> dur_s="1951", dur_ns="392000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="1968", byte_cnt="2975616", >> insts=[apply{acts=[out{port="1"}]}]}]} >> >> >> Test setup: >> 1. Initially, I've both TCP and UDP traffic, originating at h2 and >> destined to h1, >> to use the same egress interface (s1-eth1) whose bandwidth has been limited >> to 10kbps. UDP takes over all the bandwidth as expected. >> 2. I then created two queues on the egress interface with min guaranteed >> rate as 7 and 3 kbps to be used for TCP and UDP respectively. >> >> $ sudo dpctl unix:/tmp/s1 queue-mod 1 1 7 $ sudo dpctl unix:/tmp/s1 queue- >> mod 1 1 3 $ sudo dpctl unix:/tmp/s1 stats-queue SENDING (xid=0xF0FF00F0): >> stat_req{type="queue", flags="0x0", port="any", q="all"} >> >> RECEIVED (xid=0xF0FF00F0): >> stat_repl{type="queue", flags="0x0", stats=[{port="1", q="1", tx_bytes="0", >> tx_pkt="0", tx_err="0"}, {port="1", q="2", tx_bytes="0", tx_pkt="0", >> tx_err="0"}]} >> >> 3. I modified my flows to use the queue instead of directly sending it >> out of >> the port. After tj $ sudo dpctl unix:/tmp/s1 flow-mod cmd=add,table=3 >> meta=0x6,in_port=2 apply:queue1 $ sudo dpctl unix:/tmp/s1 flow-mod >> cmd=add,table=4 meta=0x11,in_port=2 apply:queue2 $ sudo dpctl >> unix:/tmp/s1 stats-flow | grep "q=" >> {table="3", match="oxm{in_port="2", metadata="0x6"}", dur_s="31", >> dur_ns="516000", prio="32768", idle_to="0", hard_to="0", cookie="0x0", >> pkt_cnt="62", byte_cnt="93868", insts=[apply{acts=[queue{q="1"}]}]}, >> {table="4", match="oxm{in_port="2", metadata="0x17"}", >> dur_s="21", dur_ns="535000", prio="32768", idle_to="0", hard_to="0", >> cookie="0x0", pkt_cnt="0", byte_cnt="0", >> insts=[apply{acts=[queue{q="2"}]}]}]} >> >> 4. After step 3, my traffic (both TCP and UDP) seems to be dropped at s1- >> eth1. I verified this using tcpdump on the ingress interface (s1-eth2) and I >> could see my traffic there. >> >> Can anyone please explain me what's wrong with my setup? >> >> Also, how would the switch know which queue of which port should be used >> for egress if we just specify the queue ID alone as done in step 3? Or should >> queue IDs be globally (across all datapath ports) unique? >> >> Thanks, >> /Aravind >> _______________________________________________ >> openflow-discuss mailing list >> openflow-discuss@lists.stanford.edu >> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss _______________________________________________ openflow-discuss mailing list openflow-discuss@lists.stanford.edu https://mailman.stanford.edu/mailman/listinfo/openflow-discuss