Re: [Ryu-devel] Dynamic Multipath in Group table

2020-01-28 Thread Moh'd Reza Abbasi
For the bandwidth you can get the stats of the ports at each end of a link
and select the  port with minimum cap/bandwidth. Of course you have to also
calculate the bandwidth usage through flow stats. if you search in
google/github you will be able to find some code samples in projects that
have done this.
___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] a problem about queue status

2019-06-10 Thread Moh'd Reza Abbasi
Check the Ryu book. In the QoS chapter, there are some examples of how to
use queues.



On Mon, Jun 10, 2019 at 11:04 AM paperkid  wrote:

>
> Dear technicians,
>
>
> now,I use ryu to develope an app that SDN controller get port queue status of 
> switches periodically with OFPQUEUESTATUSREPLY message in openflow1.3,but the 
> message doesn't return any result.I wonder that if there is a need to create 
> a queue first on the port and then use the reply message.Would you show me an 
> example in detail?___
> Ryu-devel mailing list
> Ryu-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] How to Call RyuApp directly in Python Application

2018-11-18 Thread Moh'd Reza Abbasi
I found the following script on the net. I use it to run and debug my ryu
apps. You can modify the script according to your need. You need to change
the "main_app" to your application name. You should also place this script
in the same path as your ryu app (or you might as well specify its path
address).


#!/usr/bin/env python

import sys
from ryu.cmd import manager


def main():
sys.argv.append('--ofp-tcp-listen-port')
sys.argv.append('6653')
# sys.argv.append('static')

sys.argv.append('main_app')
# sys.argv.append('--verbose')
sys.argv.append('--enable-debugger')
sys.argv.append('--observe-links')
manager.main()


if __name__ == '__main__':
main()



I’m
protected online with Avast Free Antivirus. Get it here — it’s free forever.

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Nov 18, 2018 at 10:20 PM Soe Ye Htet 
wrote:

> Hi,
>
> Please let me share what I have known. In python, there is library which
> is called os package. That package is used to call linux command in python
> application.
>
> Import os
>
> In the place that you want to call ryu application, you can write
> os.system("ryu-manager x"). If you want to run ryu application in the
> background, you can put "&" at the end of the command line such as
> os.system("ryu-manager x &").
> I hope you can run ryu application in python application.
>
> Best Regards,
> Soe Ye Htet
> Master Engineering Student
> Chulalongkorn University, Thailand
>
> On Sun, Nov 18, 2018, 6:28 PM Ha Nguyen 
>> Hi Ryu Team,
>>
>> I do not want to launch Ryu application via the ryu-manager in Terminal,
>> but rather directly within a Python script. Then I can integrate everything
>> in one python script, instead of calling ryu-manager in Terminal, topology
>> build in another Terminal, and so on.
>>
>> I am looking forward to hearing from you.
>>
>> Best Regards,
>> Ha
>>
>> --
>> *Nguyen Vo Son Ha*
>>
>> Master Student (Communications Engineering)
>> *Technical University of Munich (TUM)*
>> D-80290 Munich, Germany
>>
>> Mob:   +49 159 023 88172
>> Email:  nvso...@gmail.com
>> Skype: nvsonha
>> ___
>> Ryu-devel mailing list
>> Ryu-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>
> ___
> Ryu-devel mailing list
> Ryu-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>


I’m
protected online with Avast Free Antivirus. Get it here — it’s free forever.

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


[Ryu-devel] The flow entries are not being installed on the switches

2018-10-31 Thread Moh'd Reza Abbasi
Hey there everyone,
I am working on this simple routing application where it proactively finds
the shortest and the longest paths from a source to a destination, and
installs the flow entries on the switches in a path.

It uses networkx.shortest_simple_paths() to calculate the paths (this
function calculates the paths and sort them from the shortest to the
longest). In small network topologies the app works fine. In denser
topologies (e.g. 3x3 torus topology) when I use shortest path to forward
traffic it works. However, when I try to install the flow entries for the
longest paths, nothing happens. Even though, the match and flow rules are
created and sent to the switches. They are not being installed and no error
is raised. When I use ovs-ofctl it shows that the flow tables are empty. I
would appreciate it, if someone could tell me what are some of the possible
causes of this behavior.


The function that installs the flow entries is as follows (I took this code
from this

Ryu app, even in the original app I observe the same behavior).


def install_flow(self, datapaths, link_to_port, access_table, path,
flow_info, buffer_id, data=None):
'''
Install flow entires for roundtrip: go and back.
@parameter: path=[dpid1, dpid2...]
flow_info=(eth_type, src_ip, dst_ip, in_port)
'''
if path is None or len(path) == 0:
self.logger.info("Path error!")
return
in_port = flow_info[3]
first_dp = datapaths[path[0]]
out_port = first_dp.ofproto.OFPP_LOCAL
back_info = (flow_info[0], flow_info[2], flow_info[1])

self.logger.info("--[MAIN_APP][install_flow]\n"
"datapath %s,\n in_port %s,\n L2P %s,\n access_table %s,\n path %s,\n
flow_info %s\n, back_info %s"
"--- ",
datapaths, in_port, link_to_port, access_table, path, flow_info, back_info)

# inter_link
if len(path) > 2:

for i in xrange(1, len(path) - 1):
self.logger.info("[DEBUG][MAIN_APP][install_flow] path > 2 | i = %s, flow
%s, path %s, sw %s",
i, flow_info, path, path[i])

port = self.get_port_pair_from_link(link_to_port,
path[i - 1], path[i])
port_next = self.get_port_pair_from_link(link_to_port,
path[i], path[i + 1])
if port and port_next:
src_port, dst_port = port[1], port_next[0]
datapath = datapaths[path[i]]
self.send_flow_mod(datapath, flow_info, src_port, dst_port)
self.send_flow_mod(datapath, back_info, dst_port, src_port)
self.logger.info("[DEBUG][MAIN_APP][install_flow] path > 2 |inter_link flow
install")
if len(path) > 1:
# the last flow entry: tor -> host

port_pair = self.get_port_pair_from_link(link_to_port,
path[-2], path[-1])
self.logger.info("[DEBUG][MAIN_APP][install_flow] path > 1 | flow %s, path
%s, link(%s, %s)=port(%s)",
flow_info, path, path[-2], path[-1], port_pair)

if port_pair is None:
self.logger.info("Port is not found")
return
src_port = port_pair[1]

dst_port = self.get_port(flow_info[2], access_table)
if dst_port is None:
self.logger.info("Last port is not found.")
return

last_dp = datapaths[path[-1]]
self.send_flow_mod(last_dp, flow_info, src_port, dst_port)
self.send_flow_mod(last_dp, back_info, dst_port, src_port)

# the first flow entry
port_pair = self.get_port_pair_from_link(link_to_port,
path[0], path[1])
if port_pair is None:
self.logger.info("Port not found in first hop.")
return
out_port = port_pair[0]
self.send_flow_mod(first_dp, flow_info, in_port, out_port)
self.send_flow_mod(first_dp, back_info, out_port, in_port)
self.send_packet_out(first_dp, buffer_id, in_port, out_port, data)

# src and dst on the same datapath
else:
out_port = self.get_port(flow_info[2], access_table)
self.logger.info("[DEBUG][MAIN_APP][install_flow] esle: outport %s, dst_ip:
%s", out_port, flow_info[2])
if out_port is None:
self.logger.info("Out_port is None in same dp")
return
self.send_flow_mod(first_dp, flow_info, in_port, out_port)
self.send_flow_mod(first_dp, back_info, out_port, in_port)
self.send_packet_out(first_dp, buffer_id, in_port, out_port, data)
___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] extract IPV4 info

2018-10-29 Thread Moh'd Reza Abbasi
You should check if the incoming packet_in is a ipv4 packet or not. If it
is not then you will get the above error.

On Sat, Oct 27, 2018 at 7:18 PM Moh'd Reza Abbasi 
wrote:
On Fri, Oct 26, 2018 at 7:12 PM Munim Shabir  wrote:

> okay. So can i print in in event_packet_handler like below?
>
> whenever a packetIN comes I am able to print it's source and dst mac. but
> when I try IP the way you tell.
>
> It says
>
>
> *  dstip=pktipv4.dst #ADDED THESE FOR IP EXTRACTION **AttributeError:
> 'NoneType' object has no attribute 'dst'*
>
>
> Below is the  code with changes in BOLD
>
> dstip=pktipv4.dst #ADDED THESE FOR IP EXTRACTION
> AttributeError: 'NoneType' object has no attribute 'dst'
>
> ---
>
> # Copyright (C) 2011 Nippon Telegraph and Telephone Corporation.
> #
> # Licensed under the Apache License, Version 2.0 (the "License");
> # you may not use this file except in compliance with the License.
> # You may obtain a copy of the License at
> #
> #http://www.apache.org/licenses/LICENSE-2.0
> #
> # Unless required by applicable law or agreed to in writing, software
> # distributed under the License is distributed on an "AS IS" BASIS,
> # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> # implied.
> # See the License for the specific language governing permissions and
> # limitations under the License.
>
> """
> An OpenFlow 1.0 L2 learning switch implementation.
> """
>
>
> from ryu.base import app_manager
> from ryu.controller import ofp_event
> from ryu.controller.handler import MAIN_DISPATCHER
> from ryu.controller.handler import set_ev_cls
> from ryu.ofproto import ofproto_v1_0
> from ryu.lib.mac import haddr_to_bin
> from ryu.lib.packet import packet
> from ryu.lib.packet import ethernet
> from ryu.lib.packet import ether_types
> from ryu.lib.packet import arp
> from ryu.lib.packet import ipv4
> from ryu.lib.packet.icmpv6 import icmpv6
> msgl=[]
> def modi(msg_modi):   # made this function
> if msg_modi.in_port!=1:
> print "this is possibly 2"
> print msg_modi.in_port
> print msg_modi
> else:
> print "this is aying on 1"
> msgl.append(msg_modi)
> print ("in_port", msg_modi.in_port)
> print ("whole list", len(msgl))
>
> class SimpleSwitch(app_manager.RyuApp):
> OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION]
>
> def __init__(self, *args, **kwargs):
> super(SimpleSwitch, self).__init__(*args, **kwargs)
> self.mac_to_port = {}
>
> def add_flow(self, datapath, in_port, dst, src, actions):
> ofproto = datapath.ofproto
>
> match = datapath.ofproto_parser.OFPMatch(
> in_port=in_port,
> dl_dst=haddr_to_bin(dst), dl_src=haddr_to_bin(src))
>
> mod = datapath.ofproto_parser.OFPFlowMod(
> datapath=datapath, match=match, cookie=0,
> command=ofproto.OFPFC_ADD, idle_timeout=0, hard_timeout=0,
> priority=ofproto.OFP_DEFAULT_PRIORITY,
> flags=ofproto.OFPFF_SEND_FLOW_REM, actions=actions)
> datapath.send_msg(mod)
>
> @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
> def _packet_in_handler(self, ev):
> msg = ev.msg
> datapath = msg.datapath
> ofproto = datapath.ofproto
>
> pkt = packet.Packet(msg.data)
> eth = pkt.get_protocol(ethernet.ethernet)
> pktarp = pkt.get_protocol(arp.arp)
> pktipv4 = pkt.get_protocol(ipv4.ipv4)
>#added this
> if eth.ethertype == ether_types.ETH_TYPE_LLDP:
> # ignore lldp packet
> return
>
> dst = eth.dst
> src = eth.src
>  #added
>
>
>
>
>
>
>
> *  dstip=pktipv4.dst #ADDED THESE FOR IP EXTRACTION *
> *srcip=pktipv4.src #ADDED THESE FOR IP EXTRACTION *
>
>
>
> dpid = datapath.id
>
> self.mac_to_port.setdefault(dpid, {})
>
> self.logger.info("packet in %s %s %s %s", dpid, src, dst,
> msg.in_port)
>
> # learn a mac address to avoid FLOOD next time.
> self.mac_to_port[dpid][src] = msg.in_port
>
> if dst in self.mac_to_port[dpid]:
> out_port = self.mac_to_port[dpid][dst]
> else:
>
>
>
> *   print ("destination mac ADD", dst )   *
> *print ("destination IP ADD", dstip )   #added this*
> out_port = ofproto.OFPP_FLOOD
>
> actions = [datapath.ofproto_parser.OFPActionOutput(out_port)]
>
> # install a fl

Re: [Ryu-devel] extract IPV4 info

2018-10-26 Thread Moh'd Reza Abbasi
Yes, you can. You can do something like this.

from ryu.lib.packet import packet
from ryu.lib.packet import ipv4

pkt = packet.Packet(msg.data)
ip_pkt = pkt.get_protocol(ipv4.ipv4)
src, dst = ip_pkt.src, ip_pkt.dst

On Fri, Oct 26, 2018 at 5:52 PM Munim Shabir  wrote:

> Hi Guys,
>
> Can I extract IPv4 addresses from incoming PacketIN like we do for Src dst
> mac addresses?
>
> I need src and dst IP addresses to take some decisions.
>
> Thanks
> Muneem Shabir
> +923215363267
> ___
> Ryu-devel mailing list
> Ryu-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] How to know the number of flows

2018-02-28 Thread Moh'd Reza Abbasi
I don't think OpenFlow v.1.3 has such a feature, but how about adding a
counter in your Ryu app to keep track of added/removed rules...

On Wed, Feb 28, 2018 at 11:53 AM, ‏Eman ‏ Bany salameh via Ryu-devel <
ryu-devel@lists.sourceforge.net> wrote:

> Hi,
>
> I need to know the number of flows installed on the switch before adding
> new one. What I did before is to request stat from the switch then read the
> length of the list returned.
> This way is not useful for me.
> Is there any way to count them inside packet-in handler before adding new
> flow? I want to limit the number of flows added to 1500.
>
> Regards,
> Eman Bany Salameh
>
>
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Ryu-devel mailing list
> Ryu-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] How to detect congestion in a network

2018-02-23 Thread Moh'd Reza Abbasi
Thanks Iwas. Would also tell me what does rx_errors mean i.e., in which
situations rx_error might happen?

On Wed, Feb 14, 2018 at 5:46 AM, Iwase Yusuke <iwase.yusu...@gmail.com>
wrote:

> Hi Reza,
>
> How about getting the PortStats periodically?
> This message contains "rx_dropped", "rx_errors" and so on.
> http://ryu.readthedocs.io/en/latest/ofproto_v1_3_ref.html#ry
> u.ofproto.ofproto_v1_3_parser.OFPPortStatsReply
>
> Thanks,
> Iwase
>
>
>
> On 2018年02月09日 18:42, Moh'd Reza Abbasi wrote:
>
>> I would like to know how can I infer if link or links are congested in a
>> network using Ryu controller?
>>
>>
>> Thank you
>> Reza
>>
>>
>> 
>> --
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>
>>
>>
>> ___
>> Ryu-devel mailing list
>> Ryu-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>
>>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


[Ryu-devel] How to detect congestion in a network

2018-02-09 Thread Moh'd Reza Abbasi
I would like to know how can I infer if link or links are congested in a
network using Ryu controller?


Thank you
Reza
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


[Ryu-devel] How to make sure that flow-mods are processed by some switches?

2017-10-09 Thread Moh'd Reza Abbasi
Hi all,
I would like to know how can I ensure that flow_mods sent to the switches
are processed by the switches before sending another batch of flow_mods.

For e.g I want to insert rules on the switches 1, 2, 3, 4 in two steps.

   - First, the controller should insert the rules on the switches 1-3,
   - ONLY after the controller is sure that these switches have processed
   the flow_mods then insert the rule on the switch no.4.


I would appreciate any feedback.

Regards Reza.
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] question about port stats' duration_sec and duration_nsec

2017-08-17 Thread Moh'd Reza Abbasi
Thank you very much Mr. Fujimoto.
 Yes you were right, the problem was with my switches. I have updated OVS
to the latest version, now everything works impeccably.

On Wed, Aug 16, 2017 at 6:12 AM, Fujimoto Satoshi <
satoshi.fujimo...@gmail.com> wrote:

> Hi,
>
> Umm, I couldn't reproduce your situation.
>
> I use OpenVSwitch, and with it, I could get different duration_sec and
> duration_nsec values like this:
>
> OFPPortStats(port_no=4294967294,rx_packets=0,tx_
> packets=0,rx_bytes=0,tx_bytes=0,rx_dropped=0,
> tx_dropped=0,rx_errors=0,tx_errors=0,rx_frame_err=0,rx_
> over_err=0,rx_crc_err=0,collisions=0,
> *duration_sec=739,duration_nsec=14000*)
>
> What switch do you use?
> I guess the problem is in your switch, not in Ryu.
> Please ask the development team of your switch.
>
> Thanks,
> Fujimoto
>
>
>
> On 2017年08月15日 20:07, Moh'd Reza Abbasi wrote:
>
> Hi,
> I was experimenting with ryu, openflow stats request/reply, and mininet. I
> noticed that duration_sec and duration_nsec are always the same for each
> reply and they have same values i.e duration_sec = duration_nsec.
>
> Is it the right behavior? shouldn't the values be different?
> Because  openflow specification says : "The duration_sec and
> duration_nsec fields indicate the elapsed time the  port has been configured
> into the OpenFlow pipeline. "
>
> here is a sample of the port_stats_reply:
>
> port stats reply body content [ OFPPortStats(port_no=1,rx_
> packets=22,tx_packets=0,rx_bytes=1056,tx_bytes=0,rx_
> dropped=0,tx_dropped=0,rx_errors=0,
> tx_errors=0,rx_frame_err=0,rx_over_err=0,rx_crc_err=0,collisions=0,
> *duration_sec=4294967295,duration_nsec=4294967295*),
> OFPPortStats(port_no=2,rx_packets=22,tx_packets=0,rx_
> bytes=1056,tx_bytes=0,rx_dropped=0,tx_dropped=0,rx_errors=0,
> tx_errors=0,rx_frame_err=0,rx_over_err=0,rx_crc_err=0,collisions=0,
> *duration_sec=4294967295,duration_nsec=4294967295*), ]
>
> Thank you.
>
>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>
>
>
> ___
> Ryu-devel mailing 
> listRyu-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/ryu-devel
>
>
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


[Ryu-devel] question about port stats' duration_sec and duration_nsec

2017-08-15 Thread Moh'd Reza Abbasi
Hi,
I was experimenting with ryu, openflow stats request/reply, and mininet. I
noticed that duration_sec and duration_nsec are always the same for each
reply and they have same values i.e duration_sec = duration_nsec.

Is it the right behavior? shouldn't the values be different?
Because  openflow specification says : "The duration_sec and duration_nsec
fields indicate the elapsed time the  port has been configured into the
OpenFlow pipeline. "

here is a sample of the port_stats_reply:

port stats reply body content [
OFPPortStats(port_no=1,rx_packets=22,tx_packets=0,rx_bytes=1056,tx_bytes=0,rx_dropped=0,tx_dropped=0,rx_errors=0,
tx_errors=0,rx_frame_err=0,rx_over_err=0,rx_crc_err=0,collisions=0,
*duration_sec=4294967295,duration_nsec=4294967295*),
OFPPortStats(port_no=2,rx_packets=22,tx_packets=0,rx_bytes=1056,tx_bytes=0,rx_dropped=0,tx_dropped=0,rx_errors=0,
tx_errors=0,rx_frame_err=0,rx_over_err=0,rx_crc_err=0,collisions=0,
*duration_sec=4294967295,duration_nsec=4294967295*), ]

Thank you.
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] Ryu appears unaware of status change of powered-off switch

2017-08-09 Thread Moh'd Reza Abbasi
Hello Mathew,

I was wondering do you still have the same problem while using topology
discovery module?

Regards,
Reza

On Wed, Aug 9, 2017 at 3:41 PM, Matthew Hayes <
matthew_john_ha...@hotmail.com> wrote:

> Hi all,
>
> I've found that Ryu does not detect the disconnection of a switch when TCP
> does not signal the event with a FIN or RST (examples: switch powered off
> or backhaul cable disconnected).
>
> This appears to be because the TCP session remains in half-open
> established state in the controller operating system, so no event is
> signalled to Ryu.
>
> Is this a scenario that Ryu should detect, and if so, have techniques like
> TCP keepalive been considered?
>
> Thanks,
>
> Matt.
>
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Ryu-devel mailing list
> Ryu-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] openflow table capacity

2017-02-20 Thread Moh'd Reza Abbasi
Thank you Tulio and Iwase for your answers.

On Fri, Feb 17, 2017 at 1:09 PM, Iwase Yusuke <iwase.yusu...@gmail.com>
wrote:

> Hi,
>
> Thanks Abbasi and Túlio!
> I miss-understood that.
>
>
> > Is *total_capacity = n_table * max_entries* correct?
>
> I guess it is right.
> but as Túlio said, it is highly depending on the implementation of your
> switch.
>
> When I tested a hardware switch before, the throughput of that switch
> declined significantly
> around the number of n_table * max_entries.
>
>
> Thanks,
> Iwase
>
> On 2017年02月15日 22:40, Túlio Pascoal wrote:
> > Hi Abbasi,
> >
> > Actually If you are working with openvswitch It has unlimited flow limit.
> >
> > If you are working with a hardware-based SDN switch you have to estimate
> the limite by getting its TCAM size (usually in MB) and check the size
> field of your installed flows. So that you can divide these numbers and
> have a ideia of how many flow rules your switch can support.
> >
> > By the way, are you working mainly about flow rule limitations? If so,
> please contact me by e-mail If you desire as it is part of my master thesis.
> >
> >
> > Best Regards,
> >
> >
> > Túlio Pascoal
> >
> > Em 15 de fev de 2017 10:01, "Moh'd Reza Abbasi" <mr.mrabb...@gmail.com
> <mailto:mr.mrabb...@gmail.com>> escreveu:
> >
> > Thank you Tulio andIwase, I appreciate your responses
> > Yes Tulio, you are right. I like to know about the total flow-table
> capacity, the maximum entries that can be inserted into the switch.
> >
> > I came to an understanding that openflow "ofp_switch_features"
> returns the number of tables (n_tables), and
> > "OFPMP_TABLE_FEATURES" returns the maximum entries that can be
> inserted into that particular table (max_entries). but how to know the
> total flow table capacity?
> >
> > Is *total_capacity = n_table * max_entries* correct?
> >
> >
> >
> >
> > 
> --
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> >
> >
> >
> > ___
> > Ryu-devel mailing list
> > Ryu-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/ryu-devel
> >
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


Re: [Ryu-devel] openflow table capacity

2017-02-15 Thread Moh'd Reza Abbasi
Thank you Tulio and Iwase, I appreciate your responses
Yes Tulio, you are right. I like to know about the total flow-table
capacity, the maximum entries that can be inserted into the switch.

I came to an understanding that openflow "ofp_switch_features" returns the
number of tables (n_tables), and
"OFPMP_TABLE_FEATURES" returns the maximum entries that can be inserted
into that particular table (max_entries). but how to know the total flow
table capacity?

Is *total_capacity = n_table * max_entries* correct?
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


[Ryu-devel] openflow table capacity

2017-02-14 Thread Moh'd Reza Abbasi
Hello,
I would like to know how can I  get information regarding the  openflow
table capacity such as maximum entries, no. of entries installed etc.

The max_entries field mentioned here (
https://ryu.readthedocs.io/en/latest/app/ofctl_rest.html#get-table-stats)
is for one particular table in the switch or it is the total capacity


Thank you for your time.
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel


[Ryu-devel] Question about switch memory and finding out about flow size

2016-11-28 Thread Moh'd Reza Abbasi
Hello all,
I am new to SDN and Ryu controller world, so I have couple of questions:

   1. How can I find out about switch TCAM capacity and available memory?
   2. How can I find out about a flow size before installing the flow-rules
   in the switches and establishing the path between the source and the
   destination?


Thanks in advance
--
___
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel