<div dir="ltr"><div><div><div><div><div>Hello all,<br></div><br>I have some questions about the flow rules installed by the l2_learning module. <br><br>Let's say the following command is executed in mininet "h1 ping -c1 h2":<br><br>Initially ARP caches are empty so, h1 sends a broadcast arp. <br>The packet is flooded, and no flow rules are installed. A flow rule is installed for the reply. <br>Then 2 more rules are installed for ICMP request and reply. <br><br>However, 2 more rules installed for ARP messages, slightly after the ping has finished (2-3 seconds). <br><br>Without
 clearing the ARP cache if i wait for the flow rules to expire and ping 
again, they will be reinstalled for ICMP messages and again for ARP slightly later (i did the above twice, 1st time 3 rules for ARP were installed,  2nd time 2).<br><br>Shouldn't the installation of rules, be triggered by packet-In events of ARP messages? <br>Using tcpdump, i find that no ARP messages are exchanged, so why are 
these flow rules sent to the switch? <br><br><br></div>Also in l2_learning module, out of curiosity i printed the msg.match object passed to the switch. <br>I noticed that in all ARP flows, the object passed to the OpenFlow Switch has dl_vlan_pcp field with value 0.<br><br></div><div>I created an extra module that handles flow removed events. When the exact same flow (again only ARP) expires the msg.match.dl_vlan_pcp field is None (wildcard).<br></div><div><br><br><i>DEBUG:forwarding.l2_learning:installing flow for 00:00:00:00:00:02.2 -> 00:00:00:00:00:01.1<br>DEBUG:forwarding.l2_learning:ofp_match<br>  wildcards: nw_tos|tp_dst|tp_src (1000000000000011000000 = 2000c0)<br>  in_port: 2<br>  dl_src: 00:00:00:00:00:02<br>  dl_dst: 00:00:00:00:00:01<br>  dl_vlan: 65535<br>  dl_vlan_pcp: 0<br>  dl_type: 0x806<br>  nw_proto: 1<br>  nw_src: 10.0.0.2<br>  nw_dst: 10.0.0.1</i><br><i><br>DEBUG:Flow Removed:Flow Removed from switch: [00-00-00-00-00-01 3]<br>DEBUG:Flow Removed:ofp_match<br>  wildcards: nw_tos|tp_dst|dl_vlan_pcp|tp_src (1100000000000011000000 = 3000c0)<br>  in_port: 2<br>  dl_src: 00:00:00:00:00:02<br>  dl_dst: 00:00:00:00:00:01<br>  dl_vlan: 65535<br>  dl_type: 0x806<br>  nw_proto: 1<br>  nw_src: 10.0.0.2<br>  nw_dst: 10.0.0.1<br><br></i><br>Is this normal? Shouldn't the flow rules have identical fields?<br></div><br></div><br></div>Thank you very much in advance<br></div>