Hello all, I have some questions about the flow rules installed by the l2_learning module.
Let's say the following command is executed in mininet "h1 ping -c1 h2": Initially ARP caches are empty so, h1 sends a broadcast arp. The packet is flooded, and no flow rules are installed. A flow rule is installed for the reply. Then 2 more rules are installed for ICMP request and reply. However, 2 more rules installed for ARP messages, slightly after the ping has finished (2-3 seconds). 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). Shouldn't the installation of rules, be triggered by packet-In events of ARP messages? Using tcpdump, i find that no ARP messages are exchanged, so why are these flow rules sent to the switch? Also in l2_learning module, out of curiosity i printed the msg.match object passed to the switch. I noticed that in all ARP flows, the object passed to the OpenFlow Switch has dl_vlan_pcp field with value 0. 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). *DEBUG:forwarding.l2_learning:installing flow for 00:00:00:00:00:02.2 -> 00:00:00:00:00:01.1DEBUG:forwarding.l2_learning:ofp_match wildcards: nw_tos|tp_dst|tp_src (1000000000000011000000 = 2000c0) in_port: 2 dl_src: 00:00:00:00:00:02 dl_dst: 00:00:00:00:00:01 dl_vlan: 65535 dl_vlan_pcp: 0 dl_type: 0x806 nw_proto: 1 nw_src: 10.0.0.2 nw_dst: 10.0.0.1* *DEBUG:Flow Removed:Flow Removed from switch: [00-00-00-00-00-01 3]DEBUG:Flow Removed:ofp_match wildcards: nw_tos|tp_dst|dl_vlan_pcp|tp_src (1100000000000011000000 = 3000c0) in_port: 2 dl_src: 00:00:00:00:00:02 dl_dst: 00:00:00:00:00:01 dl_vlan: 65535 dl_type: 0x806 nw_proto: 1 nw_src: 10.0.0.2 nw_dst: 10.0.0.1* Is this normal? Shouldn't the flow rules have identical fields? Thank you very much in advance