[pox-dev] Install actions to indirectly connected switches

Lucas Brasilino lrbbs at cin.ufpe.br
Tue May 5 05:43:23 PDT 2015


HI Ayush

> I am under an impression that in real scenarios with complex typologies, not
> all switches have direct connection to a controller. And, they are connect
> to a controller through other switches (which become OpenFlow 'proxy', like
> S1 in our example). So, I am trying to connect to S2 through S1.

You are right. But, those 'other switches' traditionally aren't OF
switches. They are
'ordinary switches' (I mean, learning switches) creating a 'management network'.
This is the topology frequently seen (at least by myself).
So, if you are using 'learning switches' on top layer  they wouldn't be a
'proxy' because your layer 3 connection is direct from controller to
bottom layer
switches through the ' top switches'. Top switches are simply
switching layer 2 frames
from controller to bottom switches, they do not know that these frames
are OF messages.
You can make top switches 'learning switches' by controlling them with the
'forwarding.l2_learning' Pox's component.
In order words, top switches' control plane would be the same (or similar) to
'commercial available' learning switches.

> My main goal is to have hierarchy in data plane, where the top layer of
> switches is just used for communication between controller and bottom layer;
> whereas, the bottom layer of switches is used to connect to the hosts and
> other network components.
>
> Is this feasible with POX and mininet?

Sure it is! Just make top switches be controlled by
'forwarding.l2_learning' component and bottom
switches be controlled by your component.

-- 
Att
Lucas Brasilino
MSc Student @ Federal University of Pernambuco (UFPE) / Brazil
twitter: @lucas_brasilino

>
> On Thu, Apr 23, 2015 at 9:21 PM, Lucas Brasilino <lrbbs at cin.ufpe.br> wrote:
>>
>> Hi Ayush:
>>
>> > I have installed a permanent rule in S1 to forward the packets to S2
>> > that have destination address of S2.
>>
>> Forwarding at L2, right ? Or are you doing some kind of NAT ?
>>
>> > Topology: C0 - S1 - S2
>> > Now, when I want to install rules in S2, how should I go about it?
>> >
>> > 1) Should I create a ofp_packet_out with destination of S2, attached
>> > ofp_flow_mod packet (rules for S2) as data to it and send it to S1?
>> >
>> > 2) Should I create a ofp_flow_mod packet which has destination address
>> > of S2 and send it to S1?
>>
>> Assuming S1 are forwarding at L2, S1 will not be an OpenFlow 'proxy'
>> for S2. You just need to make S2 connect to C0's IP address. For
>> instance. if S2 is an Open vSwitch, you just do:
>>
>> $ sudo ovs-vsctl set-controller s2 tcp:192.168.56.1:6633
>>
>> Where 192.168.56.1 is the controller's IP address.
>>
>> --
>> Att
>> Lucas Brasilino
>> MSc Student @ Federal University of Pernambuco (UFPE) / Brazil
>> twitter: @lucas_brasilino
>>
>> > On Wed, Apr 22, 2015 at 8:19 AM, Lucas Brasilino <lrbbs at cin.ufpe.br>
>> > wrote:
>> >>
>> >> Hi Ayush,
>> >>
>> >> Since controller connects to switch using a TCP session, if S1 acts
>> >> like a learning switch or already has rules on its flow table
>> >> allowing TCP connections from C0 to S2, C0 will control S2.
>> >>
>> >> Just be aware that if S1 is an OF switch and those rules mentioned
>> >> above expires, you will lost control over S2, even for a while.
>> >> What I mean is that until you restore S1 rules, some
>> >> switch-to-controller messages like 'Packet In', 'Port Status', 'FlowRemoved'
>> >> and
>> >> so forth can be lost, leading for a network's state mismatch.
>> >>
>> >> --
>> >> Att
>> >> Lucas Brasilino
>> >> MSc Student @ Federal University of Pernambuco (UFPE) / Brazil
>> >> twitter: @lucas_brasilino
>> >>
>> >>
>> >>
>> >> 2015-04-22 0:10 GMT-03:00 Ayush Dusia <adusia at udel.edu>:
>> >>
>> >>> Hello Everyone,
>> >>>
>> >>> I have a question regarding installation of actions in switches.
>> >>>
>> >>> If I assume that a controller does not have direct connections to all
>> >>> the switches in a network. In that case how can a controller install actions
>> >>> in a switch to which it is not directly connected?
>> >>>
>> >>> e.g. for a topology like: C0 - S1 - S2
>> >>>
>> >>> How can C0 install actions in S2 through S1?
>> >>>
>> >>> Thanks,
>> >>> Ayush
>> >>
>> >>
>> >>
>> >>
>> >>
>> >
>
>



More information about the pox-dev mailing list