[Click] Building a packet reflector in click

david johnson david.lloyd.johnson at gmail.com
Tue Aug 25 18:28:28 EDT 2009


Wow thanks, that was simple, GetIPAddress(16) after IPMirror worked
perfectly! So I'll keep the packet reflector as a nice simple example.

David

On Tue, 2009-08-25 at 13:08 -0700, Cliff Frey wrote:
> I suspect the problem is that IPMirror does not set the dst_ip_anno
> annotation, which is what ARPQuerier uses.
> 
> If you add a GetIPAddress(IP dst) after the IPMirror, you might have
> better luck.... but I'm not positive if that'll be enough.  It is hard
> to know as I don't know what your exact device configuration (ip,
> subnet, gateway, etc) is.
> 
> I'd add ARPPrint elements after c[1] and arpq[1] to see what ARP
> traffic you are generating/receiving.
> 
> Cliff;
> 
> On Tue, Aug 25, 2009 at 12:57 PM, david johnson
> <david.lloyd.johnson at gmail.com> wrote:
>         Hi
>         
>         I presented a course on click today - used a lot of material
>         from
>         University of Antwerp - thanks Bart and Michael. I thought up
>         some
>         tutorials for them to practice their concepts and I thought
>         building a
>         packet reflector would be easy - until I tried to solve it
>         
>         I tried something like this:
>         
>         define($DEV ath0)
>         
>         FromDevice($DEV)
>          -> c :: Classifier(12/0800, 12/0806 20/0002)
>          -> CheckIPHeader(14)
>          -> IPMirror
>          -> StripToNetworkHeader
>          -> Print ("Before ARP",200)
>          -> arpq :: ARPQuerier($DEV)
>          -> Print ("After ARP",200)
>          -> IPPrint
>          -> q :: Queue
>          -> ToDevice($DEV)
>         
>         
>         arpq[1] -> q;
>         c[1] -> [1] arpq;
>         
>         But it doesn't work - the IP address swapping is working - but
>         it never
>         gets to the Print("After ARP",200) statement.
>         
>         Is this a hard problem or is their a simple solution that I'm
>         missing
>         
>         I'm trying to think out a set of click exercises that get
>         progressively
>         harder for the students to  do. Firstly without writing their
>         own
>         elements and then with including writing their own elements -
>         any ideas
>         will be most welcome. This would probably be a nice addition
>         to the
>         documentation - exercises like these and their solutions.
>         
>         Regards
>         David
>         
>         _______________________________________________
>         click mailing list
>         click at amsterdam.lcs.mit.edu
>         https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> 



More information about the click mailing list