[Click] issue with kernel level click and connectivity

abs6@njit.edu abs6 at njit.edu
Wed Aug 29 14:04:39 EDT 2007


Hello All,

Just to make it clear on the list this is reply to my question below. Apparently
my routing table was incomplete and I used etherencap instead of arpqueurier, so
it is working fine. 

Best, 
Amey

Quoting abs6 at njit.edu:

> Hello All,
> 
> I have a simple kernel level click router configuration with two
> interfaces
> generated from make-ip-conf.pl. The topology is like
> LAN1---R1----R2---LAN2
> 
> When I run the click router (R1), I cannot ping from machines on either
> side of
> LANs to each other.
> 
> Using dmesg following messages are observed:
> click: starting router thread pid 3178 (eb0f3a40)
> e1000_poll_on
> e1000_poll_on
> 
> Initially, I thought my problem is similar to the problem with the
> arpqueurier
> in the make-ip-conf.pl script discussed below on the click mailing list
> long
> time  back, but I assumed it is fixed.
> 
> https://amsterdam.lcs.mit.edu/pipermail/click/2005-May/003966.html
> 
> If anyone can help that will be great.
> 
> Thanks.
> 
> Amey
> 
> 
> //My script is below:
> // Generated by make-ip-conf.pl
> // eth1 10.1.2.2 00:04:23:9F:0C:D2
> // eth2 10.1.3.2 00:04:23:9F:0C:D3
> 
> // Shared IP input path and routing table
> ip :: Strip(14)
>     -> CheckIPHeader(INTERFACES 10.1.2.2/255.255.255.0
> 10.1.3.2/255.255.255.0)
>     -> rt :: StaticIPLookup(
>     10.1.2.2/32 0,
>     255.255.255.255/32 0,
>     10.1.2.2/32 0,
>     10.1.3.2/32 0,
>     255.255.255.255/32 0,
>     10.1.3.2/32 0,
>     10.1.2.0/255.255.255.0 1,
>     10.1.3.0/255.255.255.0 2,
>     255.255.255.255/32 0.0.0.0 0,
>     0.0.0.0/32 0,
>     0.0.0.0/0.0.0.0 10.1.2.2 1);
> 
> // ARP responses are copied to each ARPQuerier and the host.
> arpt :: Tee(3);
> 
> // Input and output paths for eth1
> c0 :: Classifier(12/0806 20/0001, 12/0806 20/0002, 12/0800, -);
> PollDevice(eth1) -> c0;
> out0 :: Queue(200) -> todevice0 :: ToDevice(eth1);
> c0[0] -> ar0 :: ARPResponder(10.1.2.2 00:04:23:9F:0C:D2) -> out0;
> arpq0 :: ARPQuerier( 10.1.2.2, 00:04:23:9F:0C:D2) -> out0;
> c0[1] -> arpt;
> arpt[0] -> [1]arpq0;
> c0[2] -> Paint(1) -> ip;
> c0[3] -> Print("eth1 non-IP") -> Discard;
> 
> // Input and output paths for eth2
> c1 :: Classifier(12/0806 20/0001, 12/0806 20/0002, 12/0800, -);
> PollDevice(eth2) -> c1;
> out1 :: Queue(200) -> todevice1 :: ToDevice(eth2);
> c1[0] -> ar1 :: ARPResponder(10.1.3.2 00:04:23:9F:0C:D3) -> out1;
> arpq1 :: ARPQuerier(10.1.3.2, 00:04:23:9F:0C:D3) -> out1;
> c1[1] -> arpt;
> arpt[1] -> [1]arpq1;
> c1[2] -> Paint(2) -> ip;
> c1[3] -> Print("eth2 non-IP") -> Discard;
> 
> // Local delivery
> toh :: Print(toh)-> ToHost;
> arpt[2] -> toh;
> rt[0] -> EtherEncap(0x0800, 1:1:1:1:1:1, 2:2:2:2:2:2) -> toh;
> 
> // Forwarding path for eth1
> rt[1] -> DropBroadcasts
>     -> cp0 :: PaintTee(1)
>     -> gio0 :: IPGWOptions(10.1.2.2)
>     -> FixIPSrc(10.1.2.2)
>     -> dt0 :: DecIPTTL
>     -> fr0 :: IPFragmenter(1500)
>     -> [0]arpq0;
> dt0[1] -> ICMPError(10.1.2.2, timeexceeded) -> rt;
> fr0[1] -> ICMPError(10.1.2.2, unreachable, needfrag) -> rt;
> gio0[1] -> ICMPError( 10.1.2.2, parameterproblem) -> rt;
> cp0[1] -> ICMPError(10.1.2.2, redirect, host) -> rt;
> 
> // Forwarding path for eth2
> rt[2] -> DropBroadcasts
>     -> cp1 :: PaintTee(2)
>     -> gio1 :: IPGWOptions(10.1.3.2)
>     -> FixIPSrc(10.1.3.2)
>     -> dt1 :: DecIPTTL
>     -> fr1 :: IPFragmenter(1500)
>     -> [0]arpq1;
> dt1[1] -> ICMPError(10.1.3.2, timeexceeded) -> rt;
> fr1[1] -> ICMPError(10.1.3.2, unreachable, needfrag) -> rt;
> gio1[1] -> ICMPError( 10.1.3.2, parameterproblem) -> rt;
> cp1[1] -> ICMPError(10.1.3.2, redirect, host) -> rt;
> 
> 



--
Amey B.Shevtekar


More information about the click mailing list