-
Notifications
You must be signed in to change notification settings - Fork 28
Fixes for POX dart #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
The old code used -1 for empty buffer IDs. We now use None.
The canonical format for ethernet addresses in POX is EthAddrs. We shouldn't convert them to raw unnecessarily.
The latter is deprecated.
EthAddr.toInt() was removed, but riplpox uses the MAC-to-Mininet-name relationship, at least for catching unexpected source/destinations. (If that's all it uses them for, it's possible it should log them as warnings instead of raising an exception...)
I think when EthAddr.toInt() was removed, so was initializing from an int. This adds a helper to address the situation.
|
Nice, Murphy! Hopefully people will find this useful. It's been so long that I don't even recall the last version of Mininet this was tested with. |
|
Just a note that commit MurphyMc/riplpox@c4d9272 in this PR addresses the main issue of #4 (-1 is not the correct value to represent NO_BUFFER) in the correct way for current versions of POX. |
|
Hi MurphyMc, I am writing a module for POX. This function is getting parameters from a dict : Then, I use ( code below) to send to switch a flowmod, but the result is different, all entries table are dropped. I cant understand and explain why. If you have done it before, please instruct me to resolve this problem. thanks |
|
Please, I need help . How can I solve it? |
|
Help! Both the ripl-poxs do not work. |
|
@Huangmachi I think it's impossible to say without more information. |
|
Hi~i have fixed this problem...check this page :http://mininet.org/api/classmininet_1_1topo_1_1Topo.html |
|
@humikahout It looks to me like your issue is unrelated to this pull request. It looks like you're using a POX component that isn't part of the standard POX distribution nor part of riplpox (ext/bellmanford.py), and that your problem is with that. I'd suggest that you contact the author of that component for support. |
|
@MurphyMc i write Dijkstra’s algorithm code according to my mininet topology but i don’t know where i post in pox code file (l2_learning file) |
|
You need more than just shortest paths between nodes. At the minimum, you also need a scheme for mapping packet addresses to nodes. And then you need to actually install table entries. POX's pox/forwarding directory has a couple examples of different ways to do this (l2_multi, topo_proactive). You should try to read and understand those. A complicating factor is that they also assume the topology needs be learned instead of being given to it, though they just rely on the discovery component for that. It may help to start by trying to understand the simpler forwarding components first (e.g., l2_pairs). The POX manual may be very helpful too. When you run into trouble, you might look for help on some OpenFlow community website or mailing list (e.g., the openflow-discuss list), or at least on the actual POX github repository instead of here on this bug since your questions aren't related to this bug or riplpox. Good luck. |



I'm not sure if you care anymore, Brandon, but this is a quick pass at getting riplpox working on recent versions of POX. A quick test indicates that the POX/riplpox part seems to work now, though it appears there are incompatibilities with current versions of Mininet. And, for that matter, with the cs244 branch?
With current Mininet, proactive didn't work. I didn't look into this very far and instead tried the cs244 branch.
With the cs244 branch, I had to tweak some function names (addSwitch vs. add_switch, etc.) to get ripl to start, but then proactive mode seemed to work.