PortStatusChanged in DeviceManager does not send OF message

97 views
Skip to first unread message

Michael Bunimovich

unread,
Jun 23, 2015, 5:34:13 AM6/23/15
to onos...@onosproject.org
I am working on MicroWave PoC.

As a first step, the controller should disable/enable a port on a network element.

My application invokes DeviceManager's portStatusChanged() method, which modifies the port at ONOS. The port status is changed and links are removed in the controller's DB, and flows are actually deleted on the network. However, the port status on the physical device does not change.

As I understand, the DeviceManager is responsible to trigger OpenFlowDeviceProvider to send OFPortMod message towards the device, in accordance with the scheme in
https://wiki.onosproject.org/display/ONOS/Segment+Routing+for+ONOS+1.2

Could you point out the changes to be made in the ONOS code to implement that?

Thanks
Michael

Jonathan Hart

unread,
Jun 24, 2015, 11:25:24 AM6/24/15
to Michael Bunimovich, onos...@onosproject.org
Hi Michael,

When you implement a provider calling in to the DeviceProviderService methods, you're using the interface that providers use to tell the ONOS core about the status of the network. This means when you call portStatusChanged you're actually simulating a port down event happening in the network - ONOS now thinks that the port has gone down on the switch so it removes the flows using that port.

I don't believe we have an interface yet to mark ports as administratively down, but I think the right way to do this would be through the DeviceAdminService. This interface would have to be augmented with a method to mark ports down, which would record this in the DeviceStore, then trigger a notification to the DeviceManager to send an OFPortMod method to the switch. Though I'm not sure if we have the notion of a port being administratively down in the DeviceStore yet, so there may be more changes required here to get this to work properly.

Thanks,
Jono

Michael

--
You received this message because you are subscribed to the Google Groups "ONOS Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to onos-dev+u...@onosproject.org.
To post to this group, send email to onos...@onosproject.org.
Visit this group at http://groups.google.com/a/onosproject.org/group/onos-dev/.
To view this discussion on the web visit https://groups.google.com/a/onosproject.org/d/msgid/onos-dev/0b0aa86e-599b-4649-ad32-2470ceabc268%40onosproject.org.

Michael Bunimovich

unread,
Jun 25, 2015, 5:35:46 PM6/25/15
to onos...@onosproject.org, mbuni...@gmail.com
Hi, Jono

Thanks for the explanation.

Michael

Thomas Vachuska

unread,
Jun 25, 2015, 6:08:54 PM6/25/15
to Michael Bunimovich, onos...@onosproject.org
I talked to Marc about this briefly. To affect the actual device state, we should use the driver subsystem. We could define something like PortConfiguration (extends HandlerBehaviour) with enablePort(p) and disablePort(p), etc.  This can then be used by apps to enable/disable ports directly on the device using whatever protocol is appropriate for that device family.

Thomas


Michael

--
You received this message because you are subscribed to the Google Groups "ONOS Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to onos-dev+u...@onosproject.org.
To post to this group, send email to onos...@onosproject.org.
Visit this group at http://groups.google.com/a/onosproject.org/group/onos-dev/.

Yuta Higuchi

unread,
Jun 25, 2015, 6:44:25 PM6/25/15
to Thomas Vachuska, Michael Bunimovich, onos...@onosproject.org
There exists an API sketch by Ali, which has a method to enable/disable Port.
 org.onosproject.net.behaviour.PortConfig

That interface also has QoS management methods included, so 
may be Port enable/disable method should be sliced out as an separate interface on it's own?



Thomas Vachuska

unread,
Jun 25, 2015, 7:40:16 PM6/25/15
to Yuta Higuchi, Michael Bunimovich, onos...@onosproject.org
Yes, that’s precisely what I was talking about, except I forgot we already defined it.  The device config stuff got derailed with CORD and ONS/Cardinal stuff.

Thomas

Saurav Das

unread,
Mar 23, 2016, 8:34:12 PM3/23/16
to Thomas Vachuska, Yuta Higuchi, Michael Bunimovich, onos...@onosproject.org
Hi Thomas,

Returning to this thread. Did anyone make any progress with this feature -- ie. the ability to administratively bring a device port up or down using the OFPT_PORT_MOD message in OF

Thanks
Saurav




--
The will MUST be stronger than the skill -- Ali

Saurav Das

unread,
Mar 23, 2016, 9:10:03 PM3/23/16
to Thomas Vachuska, Yuta Higuchi, Michael Bunimovich, onos...@onosproject.org
It appears that there is an interface org.onosproject.net.behaviour.PortAdmin which would do this but is unimplemented.

Where would be the right place to implement this behavior in the driver package?
Potentially this implementation can be used for all OpenFlow devices (unlike say pipeliner behavior).

Also would we now need a new OpenFlowPortProvider or should we reuse OpenFlowDeviceProvider to use OFPortMod in loxi?

Thanks
Saurav

Ali Al-Shabibi

unread,
Mar 23, 2016, 9:20:10 PM3/23/16
to Saurav Das, Thomas Vachuska, Yuta Higuchi, Michael Bunimovich, onos...@onosproject.org
This capability should probably be added to the device admin service and it should reuse the openflow device provider. 

--
Ali Al-Shabibi (sent from handheld)

Thomas Vachuska

unread,
Mar 24, 2016, 11:21:13 AM3/24/16
to Saurav Das, Yuta Higuchi, Michael Bunimovich, onos...@onosproject.org
Hi Saurav,

For OF-based implementation, this should probably be implemented with the OF providers. There has not been any progress on this as far as I know.

Thomas
Reply all
Reply to author
Forward
0 new messages