[Click] RadixLookup limitations? And ARPQ with VLAN tag insertion

Alexander Sotnikov a3df at trirema.kiev.ua
Fri May 27 07:14:08 EDT 2005


HI

First I explain what i trying to acheve.

I have ~40k-100k   *user groups*  , to each group assigned   one or more 
subnet and/or one or more host address  ,   each   group   must be 
encrypted with group key and routed to different GW.

Each Click router have 2 Ethernet ports connected to Swith with  VLAN 
tagging on.  Each GW also have 2 ports with different IP on each port , 
and each GW port sit in different VLAN.

Each Click router must be able to balance between alternate routes to 
the same GW or have means to route to only one if another failed , this 
I plan to acheve by running  *reachibility daemon  :)* on top of click  
, this daemon will be responisible to repaint Paint elements witch served

Here some pseudocode.


(RouteTable w/o dest Anno just port)[n-th port describing *user group 
number*]-->


///this is one of N threads. where N is total nuber of *user groups*
(Paint 1=left   2=balance 3-right   element paint is set by external 
process)-->(Crypt somehow with static key)--> psN;  //Each *user group* 
connectrd
to own GW


////This is for each N-th GW with 2 independent ports
psN ::PaintSwitch;
rrsN :: RoundRobinSwitch(2);

gwNanno1 :: SetIPAddress(GWnLEFTportIP );
gwNanno2 :: SetIPAddress(GWnRIGHTportIP );
vlan1_arpq :: ARPQuerer_with_vlan(IP1, mac1 , TAG 1);
vlan2_arpq::  ARPQuerer_with_vlan(IP2, mac2 , TAG 2);

psN[1]->gwNanno1;
psN[2]->rrsN;
psN[3]->gwNanno2;

rrsN[0]->gwNanno1;
rrsN[1]->gwNanno1;

gwNanno1->vlan1_arpq-> Queue[200]->Todevice(1);
gwNanno2->vlan2_arpq-> Queue[200]->Todevice(2);


As you see I route packet to its *user group*first by exit port from 
route table and then to his GW with futher balancing/failover.
But if you say even 4096 ports is too much , 40000+ *user groups* i have 
now  , will not work for sure  :(

Can I set some other annotations on packet ? 4 bytes preferrably :)

In man page for SetAnnoByte  , permissible values is 0-n  where n  is    
typically = 24    , typically ?   What this typically depends on? Is 
thit always 24 which bytes i can use freely?




PS : Sorry for bad English again.

Eddie Kohler wrote:

> Hi Alexander,
>
> A Click configuration with 4096 output paths would probably overwhelm  
> the machine; for instance, the configuration file itself might be too  
> large to "kalloc".  I wouldn't suggest you use RadixIPLookup as is.   
> Instead, write a version that maybe *annotated* the packet with an  
> output branch.  Then your other elements can examine that annotation.
>
> The 1-byte Paint annotation used in our IP router configs to check  
> for redirections imposes a max of 256 output paths.
>
> As for VLAN, can you say more?
>
> E
>
>
>> Hi
>>
>> What is the maximum output port number RadixLookup can support?   I  
>> see key is of int type,  is this mean limit 32k?
>> For DirectLookup as i understand it 4096.
>>
>> I'm trying to create quite big confuguration  with about   ~40k    
>> (execution branches) and different processing dependant on  
>> destination addr subnet.
>>
>> Also I trying to make ARPQ with VLAN ID insertion , from where  
>> should I start? I thinking about simple tag insertion given at  
>> element configuration(creation) .
>> _______________________________________________
>> click mailing list
>> click at amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>
>
>



More information about the click mailing list