[pox-dev] Controller to split traffic by subnet

Alison Chan chan7781 at kettering.edu
Wed May 29 08:51:17 PDT 2013


https://gist.github.com/alis0nc/5639697/10402f02adc5ae3911bc6dff1a555af68a74161c#file-my_controller-py

I've refactored and made each message its own flow_mod object, and I'm
getting 'Destination Host Unreachable' for anything from one side to
the other. I probably just need smacked upside the head with whatever
it is that I'm missing.

On Tue, May 28, 2013 at 11:07 PM, Alison Chan <chan7781 at kettering.edu> wrote:
> Oops, wasn't my intention to take this off list. I usually don't remember to
> hit Reply All. :)
>
> Alison Chan
> (mobile)
>
> On 28 May 2013 23:01, "Murphy McCauley" <murphy.mccauley at gmail.com> wrote:
>>
>> On May 28, 2013, at 7:50 AM, Alison Chan wrote:
>>
>> > Thank you for pointing that out. The flow mods sent later, had the
>> > previously set actions in them too.
>>
>> Right.
>>
>> > I fixed that by creating a new flow mod object for each one to be
>> > sent
>>
>> Did you fix ALL of them?
>>
>> BTW, I think it's generally cleaner to create new flow mod objects, but
>> the actions are just a sequence.  Meaning it's legal to do something like...
>> msg.actions = [of.ofp_output_action(...)]
>>
>> > and now one subnet works, but the other one doesn't. When I add
>> > the commented out line 170, it makes the 10.0.0.0/25 subnet not work
>> > again.
>>
>> Commenting out this line makes this flow only match on the in_port which
>> surely isn't what you want.
>>
>> >
>> > https://gist.github.com/alis0nc/5639697/3371a3050b2a28e178c5715e1fa357b4578e0acf#file-my_controller-py
>>
>> So you've got the splitting table and the subnets copied at two places in
>> the code.  I'd suggest you refactor a bit (removing one of them), which will
>> make this cleaner and also might make the problem apparent...
>>
>>
>> For what it's worth, with a couple minor tweaks, your code works. :)
>>
>> -- Murphy
>>
>> (P.S., you dropped the list from the CC, but in general, it's nice to keep
>> discussion on the list so that others can benefit)
>>
>> > On Fri, May 24, 2013 at 5:41 PM, Murphy McCauley
>> > <murphy.mccauley at gmail.com> wrote:
>> >> Hard to say if this is the problem, but... I think there's something
>> >> funny with your actions.  I think you'd see it if you looked at the action
>> >> lists in the flow_mod messages to s7/s8 using Wireshark.
>> >>
>> >> -- Murphy
>> >>
>> >> On May 24, 2013, at 1:23 PM, Alison Chan wrote:
>> >>
>> >>> https://gist.github.com/alis0nc/5639697#file-my_controller-py
>> >>> I've added a match for ARP and made sure of the prerequisite as per
>> >>> that other posting. I haven't seen a loop error since. Also, s7 and s8
>> >>> don't learn or flood anyway, they're handled in start_switch and the
>> >>> l2 learning method is in the 'else' clause.
>> >>>
>> >>> Pinging to a host on the same 'side' works now, and I've gotten rid of
>> >>> all the errors. But one side still can't talk to the other side. Am I
>> >>> doing ARM wrong?
>> >>>
>> >>> On Fri, May 24, 2013 at 1:13 AM, Murphy McCauley
>> >>> <murphy.mccauley at gmail.com> wrote:
>> >>>> At least one of your problems is the same as was recently discussed
>> >>>> in this post:
>> >>>>
>> >>>> http://lists.noxrepo.org/pipermail/pox-dev-noxrepo.org/2013-May/000732.html
>> >>>>
>> >>>> It also looks like your topology has a loop but that sufficient
>> >>>> measures are not taken to prevent packets from looping.  If your subnet
>> >>>> splitting was working, this wouldn't be a loop for IP, but still would but
>> >>>> for non-IP.  This may be why you're getting a BUFFER_UNKNOWN area -- looped
>> >>>> packets may be exhausting all the buffers.  You need to somehow modify your
>> >>>> controller to prevent looping. One way might be to change the resend_packet
>> >>>> to OFPP_ALL to use OFPP_FLOOD instead and then run the
>> >>>> openflow.spanning_tree component.  You could also just modify it so that S7
>> >>>> and S8 use single-port output instead of flooding, never use one of the
>> >>>> alternate paths, and don't do MAC learning.
>> >>>>
>> >>>> As a sidenote, you might want to take a look at the log module --
>> >>>> there's no need to tee into a file; the log module can be configured to just
>> >>>> write a file for you.
>> >>>>
>> >>>> -- Murphy
>> >>>>
>> >>>> On May 23, 2013, at 2:55 PM, Alison Chan wrote:
>> >>>>
>> >>>>> Hello,
>> >>>>>
>> >>>>> I'm having trouble designing my controller to split traffic by ip
>> >>>>> subnet. The relevant controller code, topology setup, and pox log
>> >>>>> file
>> >>>>> are in the linked gist:
>> >>>>>
>> >>>>> https://gist.github.com/alis0nc/5639697
>> >>>>>
>> >>>>> The topology and port assignnments look right as confirmed by 'net'
>> >>>>> in
>> >>>>> mininet. Here is what I'm doing:
>> >>>>>
>> >>>>> * start mininet by sudo mn --custom ~/mininet/custom/topo-ac.py
>> >>>>> --topo=mytopo --controller=remote,ip=127.0.0.1,port=6633 --mac
>> >>>>> * set up IP addresses on the nodes as follows:
>> >>>>>  * h1: 10.0.0.1
>> >>>>>  * h2: 10.0.0.129
>> >>>>>  * h3: 10.0.0.2
>> >>>>>  * h4: 10.0.0.130
>> >>>>> * start PoX by pox/pox.py misc.my_controller 2>&1 | tee -i
>> >>>>> poxlog.txt
>> >>>>> * mininet> h1 ping -c1 h2
>> >>>>> * destination host unreachable
>> >>>>> * wait about 5 seconds
>> >>>>> * the errors start coming and don't stop
>> >>>>>
>> >>>>> This is really my first OF controller past the tutorial so I
>> >>>>> apologise
>> >>>>> if I'm doing something really really stupid... But any assistance
>> >>>>> would be appreciated.
>> >>>>>
>> >>>>> Cheers,
>> >>>>> --
>> >>>>> Alison Chan
>> >>>>> Kettering University (2015): BSCS (Security concentration), BSCE,
>> >>>>> Pre-Law minor
>> >>>>> Research Assistant, Department of Computer Science
>> >>>>> Secretary, Kettering University Allies, A-Section
>> >>>>> +1 909 278 7753
>> >>>>> chan7781 at kettering.edu
>> >>>>>
>> >>>>> ()  ascii ribbon campaign for plain text email
>> >>>>> /\  http://www.asciiribbon.org
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Alison Chan
>> >>> Kettering University (2015): BSCS (Security concentration), BSCE,
>> >>> Pre-Law minor
>> >>> Research Assistant, Department of Computer Science
>> >>> Secretary, Kettering University Allies, A-Section
>> >>> +1 909 278 7753
>> >>> chan7781 at kettering.edu
>> >>>
>> >>> ()  ascii ribbon campaign for plain text email
>> >>> /\  http://www.asciiribbon.org
>> >>
>> >
>> >
>> >
>> > --
>> > Alison Chan
>> > Kettering University (2015): BSCS (Security concentration), BSCE,
>> > Pre-Law minor
>> > Research Assistant, Department of Computer Science
>> > Secretary, Kettering University Allies, A-Section
>> > +1 909 278 7753
>> > chan7781 at kettering.edu
>> >
>> > ()  ascii ribbon campaign for plain text email
>> > /\  http://www.asciiribbon.org
>>
>



-- 
Alison Chan
Kettering University (2015): BSCS (Security concentration), BSCE, Pre-Law minor
Research Assistant, Department of Computer Science
Secretary, Kettering University Allies, A-Section
+1 909 278 7753
chan7781 at kettering.edu

()  ascii ribbon campaign for plain text email
/\  http://www.asciiribbon.org



More information about the pox-dev mailing list