CiscoDevNet / pathman-sr

Pathman SR is an open-source app to compute paths and deploy routes in Segment Routing-enabled network.
Other
96 stars 33 forks source link

Should I run this app along with the ODL controller? #7

Closed gloiremao closed 7 years ago

gloiremao commented 7 years ago

Hi there,

Thanks for this amazing work. I built this app using docker container. I am able to browse the Pathman-SR interface on my local browser. However, the web page didn't show anything. My questions are:

Any advice will be highly appreciated !

alwye commented 7 years ago

Hi Chen-Ning,

Yes, you absolutely need to have an ODL instance running, and you've got the two options to do so: either locally or in Cisco dCloud. If you would like to simply play around with Pathman SR, I would definitely go for the latter, because it's free and fun: you won't need to install and configure ODL, as well as, all those switches -- which makes your life much easier. However, should you need your very own local controller + switches, that's ok -- @gilesheron or @nikmon2 can help you with that.


How to use dCloud: point your browser to dcloud.cisco.com. Hit green “Login” button (in the top right corner, then hit “Register now” (unless you’re already registered at Cisco). You will be able to browse our apps catalog.

I know for sure that Cisco data center in Research Triangle Park has most up-to-date apps. Go at: https://dcloud2-rtp.cisco.com/content/catalogue after the registration in order to list the apps. You may need to agree with Cisco’s terms and conditions first.

Type “opendaylight” into the search field on your right hand side and find an item with "SR1", "SR2" or similar in it. Right now the latest ODL image is this: OpenDaylight Boron SR2 with Apps with 16 Nodes v1.

Hit “Schedule”, select the time of your preference and move on to start the simulation.

It may (and definitely will) take pretty much time, so I’d recommend you to allow about 15-20 minutes for the app to spin up correctly.

Then you click “View” in order to see the simulation topology, and log into the workstation with provided credentials. In the workstation you should find everything to play with the app.

You will need to download Cisco AnyConnect to get into the virtual network (credentials are provided on the "Overview" page).

gloiremao commented 7 years ago

Hi @zverevalexei ,

Thanks for your very detailed explanations. I have created an instance on dCloud and I will try it first. Also, in figure 2 of your readme. What is your strategy on finding optimal path? I traced the code in pathman_sr.py and I found that it will find all the possible paths and sort them with length. Is the shortest path optimal one ?

Many thanks

alwye commented 7 years ago

Good morning Chen-Ning,

The app has built-in metrics (IGP, hops etc) for basic path computation (just what you've just described). However, Segment Routing is merely a technology to forward packets based on assigned labels, not to compute them. That means, if you need more PCE-ish functionality, can go ahead and make it :)

gloiremao commented 7 years ago

Hi @zverevalexei ,

Thanks for explaining this to me, it really helps. I list the procedures of SR, just in case I am not doing wrong.

  1. IGP or others IP routing protocols will get the path information for SR (shortest path in this case)
  2. The Pathman app can assign routing principles based on the above information and also inform the ODL controller
  3. The packets will be assigned with label(s) in ingress switches by ODL controller before sent to the network

If I am doing wrong, please don't hesitate to let me know.

nikmon2 commented 7 years ago

Hello,

What is your strategy on finding optimal path?

Pathman_SRs task is to find all possible paths and present them to the user, in a sorted order.

The user can then choose which path to use.

Optimal does not almost equate shortest, but may depend on what other things are going on in your network. The longest paths may be the east used ones.

Cheers, Niklas

nikmon2 commented 7 years ago

IGP or others IP routing protocols will get the path information for SR (shortest path in this case)

As per above, the user can request all paths ordered by hops, IGP- or TE-metric

The Pathman app can assign routing principles based on the above information and also inform the ODL controller

Only the ODL controller interacts with the network. Pathman_SR interacts with the ODL controller to build a topology and network models.

The packets will be assigned with label(s) in ingress switches by ODL controller before sent to the network

ODL has programmed the tunnel/labeled path by creating the tunnel. Once created, all traffic that enters the tunnel will be getting a label stack that matches the selected path - without further interaction from ODL.

Cheers, Niklas

gloiremao commented 7 years ago

Hi

Thanks a lot! I really learn a lot from your explanation. I am proposing a path-selecting mechanism in SR-based Traffic Engineering. It's for my master thesis and this project is very helpful to my research.

Many thanks