Open tnelson opened 11 years ago
More than performance, this raises a design issue related to unconstrained fields. If unconstrained port ID defaults to all-ports, do we allow (say) locPt != 5? If we do that, what is the semantics? All ports for the current switch except 5?
To do that, we need to extract the switchHasPorts relation from switch registration events, so we know what the domain is.
As far as I can tell Ox doesn't currently support this operation. See http://frenetic-lang.github.io/frenetic/docs/OpenFlow0x01_Core.html
More concretely: does Ox support telling a controller program about switch registration, along with port IDs the switch controls? It ought to, but I don't see it in the platform docs.
Consider asking the Ox lead developers.
FYI, Frenetic is going to stop using AllPorts. It is a hack.
Who are the Ox lead developers?
These guys, i think: https://github.com/frenetic-lang/frenetic/graphs/contributors
Looks like you're the man to ask then. Given a switch id is there a way to find the ports on the switch? Thanks!
Sorry for the delay. I was doing some last-minute slide preparation.
I need to expose the SwitchFeatures.t type into Ox. That's how you get that information. Let me try to pull it off on my flight back.
Arjun
Thanks Arjun! Were you able to do this?
I've exposed SwitchFeatures to switch_connected. If you git pull
and make reinstall
it should work.
If you have any trouble, please let me know. I haven't updated the tutorial, but if you make doc
, you should see the updated API on your own documentation.
Arjun
Thanks for this, Arjun!
Yea, thank you very much Arjun!
Ox and NetCore have an "AllPorts" construct that tells the switch to send to all ports except the one that the packet arrived on. At the moment we aren't making use of it (as befits a prototype). I'm adding this issue so we don't forget about AllPorts later this summer when we do care about performance.