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

Reply via email to