Hi Luis, Could you help me how to fix ARP flows? Last time you told me that format should be according to OF Yang model. So My question is as follows: For specific Topology, it works fine to hand ARP packets using this RESTCONF: curl --user "admin":"admin" -H "Accept: application/xml" -H "Content-type: application/xml" -X PUT http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/4 -d '<?xml version="1.0" encoding="UTF-8" standalone="no"?><flow xmlns="urn:opendaylight:flow:inventory"><hard-timeout>0</hard-timeout><idle-timeout>0</idle-timeout><priority>10</priority><flow-name>h2_ARP</flow-name><match><ethernet-match><ethernet-type><type>2054</type></ethernet-type></ethernet-match><ipv4-destination>10.0.0.2/32</ipv4-destination></match><id>4</id><table_id>0</table_id><instructions><instruction><order>0</order><apply-actions><action><output-action><output-node-connector>FLOOD</output-node-connector></output-action><order>0</order></action></apply-actions></instruction></instructions></flow>'
However, It did not work for another topology. So I replaced <ipv4-destination> by <arp-target-transport-address>, but still did not work: curl --user "admin":"admin" -H "Accept: application/xml" -H "Content-type: application/xml" -X PUT http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/table/0/flow/3 -d '<?xml version="1.0" encoding="UTF-8" standalone="no"?><flow xmlns="urn:opendaylight:flow:inventory"><hard-timeout>0</hard-timeout><idle-timeout>0</idle-timeout><priority>10</priority><flow-name>h1_ARP</flow-name><match><ethernet-match><ethernet-type><type>2054</type></ethernet-type></ethernet-match><arp-op>1</arp-op><arp-target-transport-address>10.0.0.2/32</arp-target-transport-address></match><id>3</id><table_id>0</table_id><instructions><instruction><order>0</order><apply-actions><action><output-action><output-node-connector>FLOOD</output-node-connector></output-action><order>0</order></action></apply-actions></instruction></instructions></flow>' Could you tell me the useful way to hand ARP flows? Many thanks Walid From: Luis Gomez <[email protected]> To: Walid Aljoby <[email protected]> Cc: "[email protected]" <[email protected]>; "[email protected]" <[email protected]> Sent: Sunday, January 10, 2016 4:44 AM Subject: Re: [openflowplugin-dev] Redirecting OF questions Hi Walid, Just one comment, by looking at the OF yang models (see below), the IP address of the ARP target should be <arp-target-transport-address>10.0.0.2/32</arp-target-transport-address> grouping "arp-match-fields" { leaf arp-op { type uint16; } leaf arp-source-transport-address { description "ARP source IPv4 address."; type inet:ipv4-prefix; } leaf arp-target-transport-address { description "ARP target IPv4 address."; type inet:ipv4-prefix; } container arp-source-hardware-address { description "ARP source hardware address."; presence "Match field is active and set"; uses mac-address-filter; } container arp-target-hardware-address { description "ARP target hardware address."; presence "Match field is active and set"; uses mac-address-filter; } } > On Jan 8, 2016, at 1:01 AM, Walid Aljoby <[email protected]> wrote: > > Many Thanks Luis. That is true. > > 1- I just added /32 to the IP addresses of the flows. > 2- Create flows for forwarding ARP packets. Why ARP packets? For the hosts to > reach each other (ping), they will send ICMP packets which need to resolve > the MAC address of the destination via ARP request-reply. So handling ARP > flows are very important to enable the hosts send ICMP packets or reach each > other. > > The format of ARP flow is same as below, with a little bit change: > Match: > <type>2054</type> // the Ethertype of ARP protocol > <ipv4-destination>10.0.0.2/32</ipv4-destination> // IP address of ARP target > address > > Action: > <output-node-connector>2</output-node-connector> // output port > > ---- > Regards > Walid > From: Luis Gomez <[email protected]> > To: Walid Aljoby <[email protected]> > Cc: "[email protected]" > <[email protected]>; "[email protected]" > <[email protected]> > Sent: Friday, January 8, 2016 10:01 AM > Subject: Re: [openflowplugin-dev] Redirecting OF questions > > So very quickly, I see 2 issues with these flows: > > 1) You are using wrong mask /8 when configuring the src and dst IP in the > flows, it should be /32. > 2) You also need extra flows to handle host ARP packets (unless you use > static ARP entries in the hosts). > > BR/Luis > > >> On Jan 7, 2016, at 5:25 PM, Walid Aljoby <[email protected]> wrote: >> >> Hi Luis, >> >> Many thanks Daniel for your usual help! >> >> Yes Luis. Actually I don't want to use odl-l2switch to take care of network >> flow. So What I did is as follows: >> >> 1- Mininet: sudo mn --topo single,3 --mac --switch=ovsk >> --controller=remote,ip=192.168.56.101 >> 2- Configured ODL karaf with only this feature: odl-openflowplugin, for >> purpose of communication between the network and the controller. Now the >> connection is valid. >> 3- Situation: I wanted those three hosts connected to the switch ping each >> other. So to achieve that I pushed some flows using RestConf API, but I got >> into some inconsistency between Config and Operation data stores, as follows: >> >> In summary, two flows are added between host 1 and host 2. >> ---------------------------------------------------------------------------- >> Config Data store >> >> This XML file does not appear to have any style information associated with >> it. The document tree is shown below. >> <table xmlns="urn:opendaylight:flow:inventory"> >> <id>0</id> >> <flow> >> <id>2</id> >> <match> >> <ipv4-source>10.0.0.2/8</ipv4-source> >> <ipv4-destination>10.0.0.1/8</ipv4-destination> >> <ethernet-match> >> <ethernet-type> >> <type>2048</type> >> </ethernet-type> >> </ethernet-match> >> </match> >> <table_id>0</table_id> >> <priority>10</priority> >> <idle-timeout>0</idle-timeout> >> <flow-name>h2-h1</flow-name> >> <instructions> >> <instruction> >> <order>0</order> >> <apply-actions> >> <action> >> <order>0</order> >> <output-action> >> <output-node-connector>1</output-node-connector> >> </output-action> >> </action> >> </apply-actions> >> </instruction> >> </instructions> >> <hard-timeout>0</hard-timeout> >> </flow> >> <flow> >> <id>1</id> >> <match> >> <ipv4-source>10.0.0.1/8</ipv4-source> >> <ipv4-destination>10.0.0.2/8</ipv4-destination> >> <ethernet-match> >> <ethernet-type> >> <type>2048</type> >> </ethernet-type> >> </ethernet-match> >> </match> >> <table_id>0</table_id> >> <priority>10</priority> >> <idle-timeout>0</idle-timeout> >> <flow-name>h1-h2</flow-name> >> <instructions> >> <instruction> >> <order>0</order> >> <apply-actions> >> <action> >> <order>0</order> >> <output-action> >> <output-node-connector>2</output-node-connector> >> </output-action> >> </action> >> </apply-actions> >> </instruction> >> </instructions> >> <hard-timeout>0</hard-timeout> >> </flow> >> </table> >> >> ---------------------------------------------------------------------------- >> Operational data store: >> >> This XML file does not appear to have any style information associated with >> it. The document tree is shown below. >> <table xmlns="urn:opendaylight:flow:inventory"> >> <id>0</id> >> <aggregate-flow-statistics xmlns="urn:opendaylight:flow:statistics"> >> <packet-count>0</packet-count> >> <flow-count>1</flow-count> >> <byte-count>0</byte-count> >> </aggregate-flow-statistics> >> <flow> >> <id>2</id> >> <match> >> <ipv4-source>10.0.0.2/32</ipv4-source> >> <ipv4-destination>10.0.0.1/32</ipv4-destination> >> <ethernet-match> >> <ethernet-type> >> <type>2048</type> >> </ethernet-type> >> </ethernet-match> >> </match> >> <table_id>0</table_id> >> <priority>10</priority> >> <cookie>0</cookie> >> <idle-timeout>0</idle-timeout> >> <instructions> >> <instruction> >> <order>0</order> >> <apply-actions> >> <action> >> <order>0</order> >> <output-action> >> <output-node-connector>1</output-node-connector> >> <max-length>0</max-length> >> </output-action> >> </action> >> </apply-actions> >> </instruction> >> </instructions> >> <flow-statistics xmlns="urn:opendaylight:flow:statistics"> >> <packet-count>0</packet-count> >> <duration> >> <nanosecond>353000000</nanosecond> >> <second>335</second> >> </duration> >> <byte-count>0</byte-count> >> </flow-statistics> >> <hard-timeout>0</hard-timeout> >> </flow> >> <flow> >> <id>1</id> >> <match> >> <ipv4-source>10.0.0.0/8</ipv4-source> >> <ipv4-destination>10.0.0.0/8</ipv4-destination> >> <ethernet-match> >> <ethernet-type> >> <type>2048</type> >> </ethernet-type> >> </ethernet-match> >> </match> >> <table_id>0</table_id> >> <priority>10</priority> >> <cookie>0</cookie> >> <idle-timeout>0</idle-timeout> >> <instructions> >> <instruction> >> <order>0</order> >> <apply-actions> >> <action> >> <order>0</order> >> <output-action> >> <output-node-connector>1</output-node-connector> >> <max-length>0</max-length> >> </output-action> >> </action> >> </apply-actions> >> </instruction> >> </instructions> >> <flow-statistics xmlns="urn:opendaylight:flow:statistics"> >> <packet-count>0</packet-count> >> <duration> >> <nanosecond>753000000</nanosecond> >> <second>91</second> >> </duration> >> <byte-count>0</byte-count> >> </flow-statistics> >> <hard-timeout>0</hard-timeout> >> </flow> >> <flow-hash-id-map> >> <hash> >> Match [_ethernetMatch=EthernetMatch [_ethernetType=EthernetType >> [_type=EtherType [_value=2048], augmentation=[]], augmentation=[]], >> _layer3Match=Ipv4Match [_ipv4Destination=Ipv4Prefix [_value=10.0.0.0/8], >> _ipv4Source=Ipv4Prefix [_value=10.0.0.0/8], augmentation=[]], >> augmentation=[]]100 >> </hash> >> <flow-id>1</flow-id> >> </flow-hash-id-map> >> <flow-table-statistics xmlns="urn:opendaylight:flow:table:statistics"> >> <active-flows>1</active-flows> >> <packets-matched>296020</packets-matched> >> <packets-looked-up>296038</packets-looked-up> >> </flow-table-statistics> >> </table> >> ---------------------------------------------------------------------------- >> This is in mininet terminal: >> >> mininet@mininet-vm:~$ sudo ovs-ofctl dump-flows s1 >> NXST_FLOW reply (xid=0x4): >> cookie=0x0, duration=76.928s, table=0, n_packets=0, n_bytes=0, idle_age=76, >>priority=10,ip,nw_src=10.0.0.0/8,nw_dst=10.0.0.0/8 actions=output:1 >> >> >> I am not clear why flow 1 is inconsistent in Confing and Operation data >> stores. >> >> >> Many thanks for your willing to help, and enthusiasm. >> >> >> --- >> Regards >> Walid >> >> >> From: Luis Gomez <[email protected]> >> To: Daniel Farrell <[email protected]> >> Cc: Walid Aljoby <[email protected]>; >> [email protected] >> Sent: Friday, January 8, 2016 8:31 AM >> Subject: Re: [openflowplugin-dev] Redirecting OF questions >> >> Can we get a dump of config and operational flows? >> >> BR/Luis >> >> >> > On Jan 7, 2016, at 7:26 AM, Daniel Farrell <[email protected]> wrote: >> > >> > Hey OFPlugin devs, >> > >> > Directing some (fairly basic) questions to the most relevant experts. >> > >> > Thanks, >> > >> > Daniel Farrell >> > Software Engineer, Red Hat SDN Team >> > https://wiki.opendaylight.org/view/user:dfarrell07 >> > >> > ----- Original Message ----- >> >> >> >> >> >> >> >> Dear Daniel, >> >> I will be very very grateful if you take a look into these questions: >> >> I installed odl-l2switch-switch feature and made ping for the hosts >> >> connected >> >> to the switch. So it works fine(the hosts can reach(ping) each other).My >> >> Question: because I want to create my own flow (define the way hosts can >> >> reach each other), so I have not installed odl-l2switch-switch. Is that >> >> right way? I just installed odl-openflowplugin. So I have two problems: >> >> - when I add flows I have some inconsistency between Config and >> >> Operational >> >> data stores. >> >> >> >> >> >> 2- the network consists of three hosts connected to one switch, I >> >> installed >> >> the rules as show in the photo, but the h1 could not reach h2? >> >> >> >> 3- where can I find please the document ion for these openflow tags? >> >> because >> >> some of them not found inside Openflow specification document. >> >> >> >> Thanks >> >> Walid >> >> >> >> >> >> From: Walid Aljoby <[email protected]> >> >> To: Daniel Farrell <[email protected]> >> >> Sent: Thursday, January 7, 2016 3:11 AM >> >> Subject: Re: Opendaylight Restconf with Mininet :) >> >> >> >> For sure, I am really appreciating your reply Daniel and I understand >> >> every >> >> point. By the way, my previous reply was confusing because I thought the >> >> word "Inline", like (I should ask these question online). Later I find >> >> your >> >> answer inline, and realize it.So Many thanks again >> >> My Best Regards, >> >> Walid >> >> >> >> >> >> From: Walid Aljoby <[email protected]> >> >> To: Daniel Farrell <[email protected]> >> >> Sent: Thursday, January 7, 2016 3:00 AM >> >> Subject: Re: Opendaylight Restconf with Mininet :) >> >> >> >> Many thanks Daniel. Actually I have posted that to ODL discussion group, >> >> but >> >> I have not received the reply. Sp because it is kind of urgent question to >> >> pursue work in ODL, I ask you. >> >> Anyway, your advises and comments are appreciated! >> >> Thanks >> >> walid >> >> >> >> From: Daniel Farrell <[email protected]> >> >> To: Walid Aljoby <[email protected]> >> >> Sent: Thursday, January 7, 2016 2:12 AM >> >> Subject: Re: Opendaylight Restconf with Mininet :) >> >> >> >> Inline >> >> >> >> Daniel Farrell >> >> Software Engineer, Red Hat SDN Team >> >> https://wiki.opendaylight.org/view/user:dfarrell07 >> >> >> >> ----- Original Message ----- >> >>> Dear Daniel, >> >>> Wish you had a nice holiday and best of luck for a happy new year, and >> >>> many >> >>> thanks to your detailed previous help. >> >>> >> >>> I have these questions, I hope please to go through them for double-check >> >>> and >> >>> reply: >> >>> Using pre-built version ODL lithium: >> >>> >> >>> 1- I created network with mininet and started to connect with ODL, I find >> >>> out >> >>> an error like (unable to connect to controller...). So I fixed it out by >> >>> (feature:install odl-openflowplugin), So I am not sure why is it >> >>> necessary >> >>> to use this openflowplugin feature because my thinking that as long as >> >>> ODL >> >>> karaf is running, it should be automatically connected to mininet without >> >>> any need to install any features.. please how is that CORRECT? >> >>> >> >> >> >> All ODL functionally comes from loaded Karaf features. The default set >> >> of installed features, a nearly empty Karaf container, only provides stuff >> >> like the ability to SSH into the Karaf shell. >> >> >> >> You need ODL's SB OpenFlow logic to talk to MN switches via OF, which you >> >> get by installing openflowplugin* Karaf features. >> >> >> >>> >> >>> >> >>> 2- I started to learn about Restconf(for example how to push flows using >> >>> postman and curl linux tools), I have the following confusing problem: I >> >>> followed these examples: >> >>> >> >>>https://wiki.opendaylight.org/view/Editing_OpenDaylight_OpenFlow_Plugin:End_to_End_Flows:Example_Flows, >> >>> but I have two problems: a- sometimes the flows are displayed on >> >>> localhost:8181/config/.., but could not be displayed on the switches >> >>> (Mininet).. b- I have OVS which connect two hosts, I added a rule >> >>> like if in-port=xm out-port=y in order to enable for example h1 ping h2, >> >>> but >> >>> it doesn't work until I added the reverse in-port=y out-port=x. >> >>> So >> >>> please let me know the logic, I will be so Happy! >> >>> >> >> >> >> These docs look correct and relevant. >> >> >> >> https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:End_to_End_Flows >> >> >> >>> >> >>> >> >>> 3- My thinking to learn first Restconf then move to MD-SAL, how is that >> >>> correct? >> >>> >> >> >> >> I don't think it matters much. >> >> >> >>> >> >>> 4- I created specific topology in mininet and I want to install specific >> >>> flows using curl utility in XML format. So Do is it necessary to create >> >>> any >> >>> YANG model or directly install flows according to Opendaylight:inventory? >> >>> May be the question not clear because I don't understand it very well, >> >>> but >> >>> the idea is to install specifc flows for forwarding the packets in my >> >>> created topology through Restful API..!! >> >> >> >> When create flows via POSTs to ODL via RestConf, you're creating entries >> >> in ODL's MD-SAL config data store. They then get populated to the >> >> switches, >> >> and the updated state of the world is reflected in ODL's MD-SAL >> >> operational >> >> data store. >> >> >> >>> >> >>> I am very sorry for long email but I am in need for that dear Daniel. I >> >>> will >> >>> not forget your help for me at this stage, and I will not annoy much more >> >>> with my quetions, I need that to push me quickly!!! >> >> >> >> Glad to help, but be reminded that the expected/normal/best way to get >> >> help >> >> in open source communities is to use the relevant community mailing lists. >> >> You'll find more relevant experts and typically get faster responses. >> >> >> >> All the best, >> >> >> >>> thank you in advance---- >> >>> RegardsWalid From: Daniel Farrell <[email protected]> >> >>> To: Walid Aljoby <[email protected]> >> >>> Sent: Wednesday, December 16, 2015 2:35 AM >> >>> Subject: Re: Learning Opendaylight Application Development >> >>> >> >>> Glad to help. :) >> >>> >> >>> Daniel Farrell >> >>> Software Engineer, Red Hat SDN Team >> >>> https://wiki.opendaylight.org/view/user:dfarrell07 >> >>> >> >>> ----- Original Message ----- >> >>>> Dear Daniel, >> >>>> I don't know how I thank your great help for me. Actually I have already >> >>>> looked to the videos in YouTube for less than two minutes each, but I >> >>>> ignored them because I am not sure whether they help me or just a wast >> >>>> of >> >>>> time, but now you are really make me more confident where and how to >> >>>> start >> >>>> and dig deep on the ODL learning..Many Many thanks again!! >> >>>> Wish you all the best in your career and life!! >> >>>> ---My Best RegardsWalidWaleed Abdulwahab Yahya Al-Gobi | >> >>>> adsc.illinois.edu >> >>>> >> >>>> | | >> >>>> | | | | | | | | >> >>>> | Waleed Abdulwahab Yahya Al-Gobi | adsc.illinois.eduWaleed Abdulwahab >> >>>> | Yahya >> >>>> | Al-Gobi is a SINGA graduate student who is working with ADSC Research >> >>>> | Scientist Richard Ma. | >> >>>> | | >> >>>> | View on adsc.illinois.edu | Preview by Yahoo | >> >>>> | | >> >>>> | | >> >>>> >> >>>> >> >>>> >> >>>> From: Daniel Farrell <[email protected]> >> >>>> To: walid aljoby <[email protected]> >> >>>> Sent: Wednesday, December 16, 2015 12:14 AM >> >>>> Subject: Re: Learning Opendaylight Application Development >> >>>> >> >>>> Hello Walid, >> >>>> >> >>>> Welcome to OpenDaylight! >> >>>> >> >>>> The primary source for I'd recommend for learning about ODL app >> >>>> development is the Controller Core Functionality Tutorials. They >> >>>> include both a wiki and recorded tutorial sessions from the most >> >>>> recent OpenDaylight Summit. >> >>>> >> >>>> https://wiki.opendaylight.org/view/Controller_Core_Functionality_Tutorials:Application_Development_Tutorial >> >>>> >> >>>> Feel free to ask additional questions, but note in most open source >> >>>> communities you typically get more helpful and faster responses by >> >>>> asking on public mailing list, vs directly 1-1. For OpenDaylight, >> >>>> the Discuss or OpenDaylight Users lists would be best for general >> >>>> questions like this. >> >>>> >> >>>> https://lists.opendaylight.org/mailman/listinfo/discuss >> >>>> https://lists.opendaylight.org/mailman/listinfo/opendaylight-users >> >>>> >> >>>> Hope that helps! Welcome again to ODL! :) >> >>>> >> >>>> Daniel Farrell >> >>>> Software Engineer, Red Hat SDN Team >> >>>> https://wiki.opendaylight.org/view/user:dfarrell07 >> >>>> >> >>>> ----- Original Message ----- >> >>>>> Dear Sir, >> >>>>> >> >>>>> I am PhD student in National University of Singapore. >> >>>>> Actually, I have only the basics of Java programming. I do not about >> >>>>> Interactions between XML, YANG , OSGI, REST, these concepts I find it >> >>>>> in >> >>>>> Opendaylight software Architecture. >> >>>>> You as expert in Opendaylight, could you please guide me to the >> >>>>> effective way of learning Opendaylight for Application Develpment? For >> >>>>> example, links to the effective videos or websites that help me build a >> >>>>> strong knwoledge for develping applications using this software.. >> >>>>> >> >>>>> Many thanks in advance >> >>>>> >> >>>>> Best Regards >> >>>>> ---- >> >>>>> Walid >> >> >>>>> >> >>>> >> >>>> >> >>>> >> >>> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> > _______________________________________________ >> > openflowplugin-dev mailing list >> > [email protected] >> > https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev >> >> >> > > >
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
