tnelson / FlowLog

17 stars 5 forks source link

Performance: AllPorts #3

Open tnelson opened 11 years ago

tnelson commented 11 years ago

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.

tnelson commented 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.

mgscheer commented 11 years ago

As far as I can tell Ox doesn't currently support this operation. See http://frenetic-lang.github.io/frenetic/docs/OpenFlow0x01_Core.html

tnelson commented 11 years ago

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.

arjunguha commented 11 years ago

Consider asking the Ox lead developers.

FYI, Frenetic is going to stop using AllPorts. It is a hack.

mgscheer commented 11 years ago

Who are the Ox lead developers?

arjunguha commented 11 years ago

These guys, i think: https://github.com/frenetic-lang/frenetic/graphs/contributors

mgscheer commented 11 years ago

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!

arjunguha commented 11 years ago

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

mgscheer commented 11 years ago

Thanks Arjun! Were you able to do this?

arjunguha commented 11 years ago

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

tnelson commented 11 years ago

Thanks for this, Arjun!

mgscheer commented 11 years ago

Yea, thank you very much Arjun!