Flow rules and bandwidth

747 views
Skip to first unread message

Alessandro

unread,
Mar 20, 2017, 2:28:11 PM3/20/17
to ONOS Discuss
Hi guys,

I'm working with ONOS 1.5.1 and Mininet 2.2.1 and until now all works perfectly. What i would like to know is if it's possible to use flow rules based on some performance requirements like bandwidth.
For example: i want to create different rules with different priority and settings for different paths, so when the communication between two hosts happens using a particular path with low bandwidth, the
controller can change the flow rule to use (and in this way also the path) to improve the performance.

If all this is possible how can i bind the rules with the performance?

Thanks in Advance and sorry about my (poor) English.
Alessandro

Alessandro

unread,
Mar 22, 2017, 6:42:43 AM3/22/17
to ONOS Discuss
Any advice, no one?

Luca Prete

unread,
Mar 22, 2017, 10:42:50 AM3/22/17
to Alessandro, ONOS Discuss
Alessandro,

I'm not sure I got what you're trying to achieve. Maybe a concrete example would help.

Keep in mind that the intent framework can check if a certain intent (requesting a certain bw) is able to get installed (meaning find if all ports of the path have enough bandwidth for it). Would this be enough for you?

-Luca

--
You received this message because you are subscribed to the Google Groups "ONOS Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to onos-discuss...@onosproject.org.
To post to this group, send email to onos-d...@onosproject.org.
Visit this group at https://groups.google.com/a/onosproject.org/group/onos-discuss/.
To view this discussion on the web visit https://groups.google.com/a/onosproject.org/d/msgid/onos-discuss/ba390a3a-fa7a-4037-9d90-7f87cf1e05e0%40onosproject.org.

Alessandro

unread,
Mar 22, 2017, 12:50:39 PM3/22/17
to ONOS Discuss, alexand...@gmail.com
Hi Luca,

first of all thanks for the reply. I uploaded an image that help me to give you a concrete example.
Suppose that host 10.3.3.31 wants to communicate with host 10.3.3.45. So i make 3 flow rules to set up the red path and another 3 flow rules to set up the green path. Furthermore the flow rules for the red path have a higher priority than the green path and suppose that all the links have a max bandwidth capacity equal to 20 Mbps.
Now, in case the red path, during the communication, has a bandwidth capacity equal to or greater then 10Mbps  for example the controller can continue to use the red path, but if the controller realizes that the bandwidth capacity goes under 10 Mbps for some problem, it should change the path and use the flow rules for the green path to improve the performance. Practically i would like to make flow rules that consider also the state of net.
Maybe with the meters it's possible?

I hope I was clear now.
onos-net.png

Luca Prete

unread,
Mar 22, 2017, 1:53:59 PM3/22/17
to Alessandro, ONOS Discuss, Northbound brigade
Alessandro,

I've understood the use case. For sure meters won't help you here, at least not in the first part of the use case.
Meters are something you create in OF on the ingress device to limit the bandwidth of one or more flows (i.e. to say drop user 10.3.3.21 traffic, after 10Mbps).

What I believe might help you is
* Using intents instead of flows
* Instantiate intents with a certain bandwidth allocation specified -param -b from the CLI- (meaning that if the link is 20Mbps and we request 10Mbps for the intent, we will register in the resource service (only on the control plane!) that the link has now a remaining capacity of 10Mbps).

The ConnectivityIntentCompiler has a function to check if an intent can be installed or not, depending on the link remaining bandwidth and the bandwidth requested by the intent itself. This function is called every time you try to allocate bandwidth for a specific intent (what I said above). You can modify that function according to your needs (i.e. don't allocate intents if the bandwidth available is less than 50%).

The part I'm not familiar with is the re-routing, depending on the available bandwidth. For that I assume you'll need to listen for events coming from the resource service, that will tell you how much bandwidth remains on the links after each allocation. Once you know that, you'll need to react to it accordingly.

Possibly someone else from the community might be able to help you with this last point.

Hope it helps somehow.

Cheers,

-Luca

To unsubscribe from this group and stop receiving emails from it, send an email to onos-discuss+unsubscribe@onosproject.org.

To post to this group, send email to onos-d...@onosproject.org.
Visit this group at https://groups.google.com/a/onosproject.org/group/onos-discuss/.

Alessandro

unread,
Mar 22, 2017, 2:49:17 PM3/22/17
to ONOS Discuss, alexand...@gmail.com, brigade-n...@onosproject.org
Thanks Luca, i really appreciate your kindness.

Now i've really understood what meters are for, and i've understood that, with the apps available on ONOS immediately after the installation, it's not possible to do what i want.
I should make the app on my own. Anyway thanks again.

Best regards,

Alessandro

Jordi Ortiz

unread,
Mar 22, 2017, 4:50:40 PM3/22/17
to Alessandro, ONOS Discuss, brigade-n...@onosproject.org
Hi,

I might be wrong but I want to give you my 5 cents.
For the case you explained a meter is a non-sense since you can
already check the usage of the flow in the input to know if it is
below 10Mbps BUT if you want to know if the addition of X hosts (X big
enough) are using less than 10Mbps, then the easiest way is to put a
Meter on the input device and point all the input flows to that meter.
With that you will easily calculate how much bandwidth is being used.
Look at
OFPMF_STATS = 1 << 3, /* Collect statistics. */
in the openflow standard.

This is a flag to be set, although not sure if that can only be used
with EXPERIMETER type of Meter.

On the other hand you have the OFPMP_AGGREGATE message to aggregate
the statistics from multiple flows but in that case you have to be
"polling" the info (If I'm not wrong) and with the meter the info
would come automatically with the Meter Stats.

As Luca said, intentframework is your friend here.
@Luca: is there a way to obtain the paths actually used by a precise
intent? and the flows? If so, this info could be used to look at the
statistics.

Regards
Jordi
> "Northbound brigade" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to brigade-northbo...@onosproject.org.
> To post to this group, send email to brigade-n...@onosproject.org.
> Visit this group at
> https://groups.google.com/a/onosproject.org/group/brigade-northbound/.
> To view this discussion on the web visit
> https://groups.google.com/a/onosproject.org/d/msgid/brigade-northbound/56dbbf1d-4f5e-42c3-ba44-2d1a78611bf7%40onosproject.org.
>
> For more options, visit
> https://groups.google.com/a/onosproject.org/d/optout.

Luca Prete

unread,
Mar 23, 2017, 12:50:08 PM3/23/17
to Jordi Ortiz, Alessandro, ONOS Discuss, Northbound brigade
Jordi,

Thanks for the feedback. Indeed that might work as well, but I think Alessandro was looking for a ready to go solution.
Intent wise, I'm not sure...I don't see anything in the intent APIs.

-Luca

> email to brigade-northbound+unsub...@onosproject.org.
> To post to this group, send email to brigade-northbound@onosproject.org.
--
You received this message because you are subscribed to the Google Groups "Northbound brigade" group.
To unsubscribe from this group and stop receiving emails from it, send an email to brigade-northbound+unsub...@onosproject.org.
To post to this group, send email to brigade-northbound@onosproject.org.

Alessandro

unread,
Mar 23, 2017, 12:59:19 PM3/23/17
to ONOS Discuss, alexand...@gmail.com, brigade-n...@onosproject.org
Thanks Jordi but i am a noob on Onos, it's too complicate. I think i have to give up.

Mehdi Namane

unread,
Apr 25, 2017, 2:58:52 PM4/25/17
to ONOS Discuss
Hi Luca,


I read about what you told more precisly this part: "depending on the link remaining bandwidth and the bandwidth requested by the intent itself.
Does ONOS have this feature ? of setting the bandwidth capacity of a link ? if yes how can I test it please ? 


Best regards,

Mehdi Namane

unread,
Apr 26, 2017, 4:25:41 AM4/26/17
to Luca Prete, Alessandro, ONOS Discuss, Northbound brigade
Hi Luca,


I read about what you told more precisly this part: "depending on the link remaining bandwidth and the bandwidth requested by the intent itself.
Does ONOS have this feature ? of setting the bandwidth capacity of a link ? if yes how can I test it please ? 


Best regards,
Reply all
Reply to author
Forward
0 new messages