Ask is moving to Stack Overflow and Serverfault.com! Please use the "opendaylight" tag on either of these sites. This site is now in Read-Only mode

Revision history [back]

click to hide/show revision 1
initial version

I have solved the problem by doing this:

  • I performed a clean installation of the ODL Beryllium version (instead of Boron that I was using before). I also installed the "odl-l2switch-switch-ui" feature only;

  • I changed one property of 58-l2switchmain.xml file from true to "false" (which is inside of <odl-root-folder>/etc/opendaylight/karaf), as follows:

      <is-install-dropall-flow>false</is-install-dropall-flow> (default is true)
    
  • I have also setted two properties of the 54-arphandler.xml to "false", as follows:

      <is-proactive-flood-mode>false</is-proactive-flood-mode>
      <is-hybrid-mode>false</is-hybrid-mode>
    
  • I have setted one property of file 52-loopremover.xml to "true", as follows:

      <is-install-lldp-flow>true</is-install-lldp-flow>
    
  • I started the ODL controller: ./bin/karaf (without the -of13 option)

  • Finally, I had to install two more rules on ODL (via its REST API and Postman), as follows:

First, one normal-pipeline rule:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/260

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<flow-name>OUT-NORMAL-CONTROLLER</flow-name>
<id>260</id>
<cookie_mask>255</cookie_mask>
<cookie>105</cookie>
<table_id>0</table_id>
<priority>1</priority>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>NORMAL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>
  • And a second rule to deal with ARP packets:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/37

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<priority>30</priority>
<flow-name>ARP-ALL-CTRL</flow-name>
<match>
<ethernet-match>
<ethernet-type>
<type>0x806</type>
</ethernet-type>
</ethernet-match>
</match>
<id>37</id>
<table_id>0</table_id>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>ALL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>

After doing all these steps, the controller will now install the following rules automatically for us:

 cookie=0x69, duration=808.580s, table=0, n_packets=26, n_bytes=2012, priority=1 actions=NORMAL,CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=0, n_bytes=0, priority=100,dl_type=0x88cc actions=CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=2, n_bytes=84, priority=1,arp actions=CONTROLLER:65535

Now, all the client-hosts of my topology and the switch appears in the topology GUI view and can ping each other. Regards,

I have solved the problem by doing this:

  • I First, I have performed a clean installation of the ODL Beryllium version (instead of Boron that I was using before). I also installed the "odl-l2switch-switch-ui" feature only;

  • only, btw;

  • Then I changed one property of 58-l2switchmain.xml file from true to "false" (which is inside of <odl-root-folder>/etc/opendaylight/karaf), as follows:

      <is-install-dropall-flow>false</is-install-dropall-flow> (default is true)
    
  • I have also setted two properties of the 54-arphandler.xml to "false", "false" (again, the file is inside of <odl-root-folder>/etc/opendaylight/karaf folder), as follows:

      <is-proactive-flood-mode>false</is-proactive-flood-mode>
      <is-hybrid-mode>false</is-hybrid-mode>
    
  • I have setted one property of file 52-loopremover.xml 52-loopremover.xml to "true", as follows:

      <is-install-lldp-flow>true</is-install-lldp-flow>
    
  • I started the ODL controller: ./bin/karaf (without controller issuing the command ./bin/karaf (but without the -of13 option)

  • Finally, I had to install two more rules on ODL (via on its table-0 (using its REST API and Postman), as follows:

First, one normal-pipeline rule:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/260

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<flow-name>OUT-NORMAL-CONTROLLER</flow-name>
<id>260</id>
<cookie_mask>255</cookie_mask>
<cookie>105</cookie>
<table_id>0</table_id>
<priority>1</priority>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>NORMAL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>
  • And a second rule to deal with ARP packets:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/37

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<priority>30</priority>
<flow-name>ARP-ALL-CTRL</flow-name>
<match>
<ethernet-match>
<ethernet-type>
<type>0x806</type>
</ethernet-type>
</ethernet-match>
</match>
<id>37</id>
<table_id>0</table_id>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>ALL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>

After doing all these steps, the controller you will now install notice that the following rules are automatically for us:installed after the controller is started:

 cookie=0x69, duration=808.580s, table=0, n_packets=26, n_bytes=2012, priority=1 actions=NORMAL,CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=0, n_bytes=0, priority=100,dl_type=0x88cc actions=CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=2, n_bytes=84, priority=1,arp actions=CONTROLLER:65535

Now, From the above rules, the controller now can interact with the hosts. Also, all the client-hosts hosts of my topology and the switch appears will appear in the topology GUI view and can ping each other. Regards,

I have solved the problem by doing this:

  • First, I have performed a clean installation of ODL Beryllium version (instead of Boron that I was using before). version. I also installed the "odl-l2switch-switch-ui" feature only, btw;

  • Then I changed one property of 58-l2switchmain.xml file from true to "false" (which is inside of <odl-root-folder>/etc/opendaylight/karaf), as follows:

      <is-install-dropall-flow>false</is-install-dropall-flow> (default is true)
    
  • I have also setted two properties of the 54-arphandler.xml to "false" (again, the file is inside of <odl-root-folder>/etc/opendaylight/karaf folder), as follows:

      <is-proactive-flood-mode>false</is-proactive-flood-mode>
      <is-hybrid-mode>false</is-hybrid-mode>
    
  • I have setted one property of file 52-loopremover.xml to "true", as follows:

      <is-install-lldp-flow>true</is-install-lldp-flow>
    
  • I started the ODL controller issuing the command ./bin/karaf (but without the -of13 option)

  • Finally, I had to install two more rules on ODL on its table-0 (using its REST API and Postman), as follows:

First, one normal-pipeline rule:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/260

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<flow-name>OUT-NORMAL-CONTROLLER</flow-name>
<id>260</id>
<cookie_mask>255</cookie_mask>
<cookie>105</cookie>
<table_id>0</table_id>
<priority>1</priority>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>NORMAL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>
  • And a second rule to deal with ARP packets:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/37

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<priority>30</priority>
<flow-name>ARP-ALL-CTRL</flow-name>
<match>
<ethernet-match>
<ethernet-type>
<type>0x806</type>
</ethernet-type>
</ethernet-match>
</match>
<id>37</id>
<table_id>0</table_id>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>ALL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>

After doing all these steps, you will notice that the following rules are automatically installed after the controller is started:

 cookie=0x69, duration=808.580s, table=0, n_packets=26, n_bytes=2012, priority=1 actions=NORMAL,CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=0, n_bytes=0, priority=100,dl_type=0x88cc actions=CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=2, n_bytes=84, priority=1,arp actions=CONTROLLER:65535

From the above rules, the controller now can interact with the hosts. Also, all the hosts of my topology and the switch will appear in the topology GUI view and ping each other. Regards,

I have solved the problem by doing this:

  • First, I have performed a clean installation of ODL Beryllium version. I also installed the "odl-l2switch-switch-ui" feature only, btw;

  • Then I changed one property of 58-l2switchmain.xml file from true to "false" (which is inside of <odl-root-folder>/etc/opendaylight/karaf), as follows:

      <is-install-dropall-flow>false</is-install-dropall-flow> (default is true)
    
  • I have also setted two properties of the 54-arphandler.xml to "false" (again, the file is inside of <odl-root-folder>/etc/opendaylight/karaf folder), as follows:

      <is-proactive-flood-mode>false</is-proactive-flood-mode>
      <is-hybrid-mode>false</is-hybrid-mode>
    
  • I have setted one property of file 52-loopremover.xml to "true", as follows:

      <is-install-lldp-flow>true</is-install-lldp-flow>
    
  • I started the ODL controller issuing the command ./bin/karaf (but without the -of13 option)

  • Finally, I had to install two more rules on ODL on its table-0 (using its REST API and Postman), as follows:

First, one normal-pipeline rule:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/260

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<strict>false</strict>
<flow-name>OUT-NORMAL-CONTROLLER</flow-name>
<id>260</id>
<cookie_mask>255</cookie_mask>
<cookie>105</cookie>
<table_id>0</table_id>
<priority>1</priority>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>NORMAL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>
  • And a second rule to deal with ARP packets:

http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/[your-switch-id-here]/table/0/flow/37

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<flow xmlns="urn:opendaylight:flow:inventory">
<priority>30</priority>
<flow-name>ARP-ALL-CTRL</flow-name>
<match>
<ethernet-match>
<ethernet-type>
<type>0x806</type>
</ethernet-type>
</ethernet-match>
</match>
<id>37</id>
<table_id>0</table_id>
<hard-timeout>0</hard-timeout>
<idle-timeout>0</idle-timeout>
<instructions>
<instruction>
<order>0</order>
<apply-actions>
<action>
<order>0</order>
<output-action>
<output-node-connector>ALL</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>
<action>
<order>1</order>
<output-action>
<output-node-connector>CONTROLLER</output-node-connector>
<max-length>65535</max-length>
</output-action>
</action>                
</apply-actions>
</instruction>
</instructions>
</flow>

After doing all these steps, you will notice that the following rules are automatically installed after the controller is started:

 cookie=0x69, duration=808.580s, table=0, n_packets=26, n_bytes=2012, priority=1 actions=NORMAL,CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=0, n_bytes=0, priority=100,dl_type=0x88cc actions=CONTROLLER:65535
 cookie=0x2b00000000000003, duration=808.584s, table=0, n_packets=2, n_bytes=84, priority=1,arp actions=CONTROLLER:65535

From the above rules, the controller now can interact with the hosts. Also, all the hosts of my topology and the switch will appear in the topology GUI view and ping each other. Regards,