# HP switch and ODL Beryllium

Hey,

I am a PhD student from Brazil. Our research lab has acquired a HP switch (HPE 5130) and Im having problems to integrate this switch with the ODL controller. In particular, I have used the configuration guide which is provided by HP, ODL Beryllium and the -of13 karaf option, but although the switch always appears in the topology ODL GUI, the two client hosts are never visible. The 2 hosts cannot ping each other. So it appears to me that the ODL controller is not able to install the proper flow rules so that the hosts can see each other (as I saw ODL does in other simulations I run using it with Mininet and OVS). Is there any mandatory package that I must install to perform communication between ODL and HP switches? Do I have to perform some kind of previous configuration on the hp switch so that ODL can properly use the flow tables and install the flow rules in particular? Do I have to use a specific OpenFlow version?

Anyway, if anybody has successfully created a simple 2hosts topology using ODL and a HP switch can give a novice any direction about how to create a 2hosts topology with one HP switch---so that ODL is able to install flow rules that allow the 2hosts ping each other as well as all nodes appear in the topology GUI view---, let me know, please. Thanks,

edit retag close merge delete

Sort by » oldest newest most voted

I am facing the same problem using a Accton switch model AS5710-54X-EC and ODL Beryllium SR4. Following features are installed: odl-openflowplugin-all odl-restconf odl-dlux-all odl-l2switch-all odl-netconf-all odl-mdsal-all odl-ttp-all. Anyone has a suggestion to be done?

more

I have installed features odl-l2switch-switch-ui and odl-dlux-all only. I hope it helps...

( 2017-03-10 08:08:49 -0700 )edit

Are there any other settings you had to do from host side? I guess you were using beryllium version?

( 2017-03-27 09:39:16 -0700 )edit

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...[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>
<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...[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 appear in the topology GUI view and ping each other. Regards,

more

@Cesar I don't understand, how did you find out these 2 specific flow rules (260 and 37) ? Also, are you using Openflow 1.3 compatible switches? Unfortunately, this method is not working for me :(

You see those rules from the switch openflow flows ? I couldn't see hosts from GUI yet.

more