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