[Click] madwifi roofnet config problem

John Bicket jbicket at amsterdam.lcs.mit.edu
Fri Jul 16 15:33:41 EDT 2004


Hi Bob,

That script hadn't quite caught up with the rest of the elements.
I just checked changes in,and it should propagate to anon cvs soon.

--john

Bob Keyes [bob at sinister.com] wrote:
>
>Hi again,
>My dwl-ag520 finally came in today, yay! so I've build the
>madwifi/click/roofnet as described in
>http://www.pdos.lcs.mit.edu/~jbicket/madwifi.stripped/
>
>But there are problems:
>
>merlin:/click# cat /click/errors
>line 165: While configuring 'srcr_es :: ETTStat':
>  bad keyword(s) SIZE
>  (valid keywords are ETHTYPE, IP, WINDOW, ETH, PERIOD, TAU, ETT, ARP,
>PROBES, RT)
>line 174: While configuring 'srcr_ett :: ETTMetric':
>  bad keyword(s) 2WAY_METRICS, 2_WEIGHT, 4_WEIGHT, 11_WEIGHT, 22_WEIGHT
>  (valid keywords are ETT, IP, LT)
>line 192: 'srcr :: SRCR' output 1 unused
>Router could not be initialized!
>
>
>See attached config file, generated with the gen_config_roofnet.pl script
>
>
>Any ideas?
>
>
>rates :: AvailableRates(DEFAULT 2 4 11 22);
>
>elementclass APDevice {
>    $device, $mac, $promsic|
>
>  beacon_source :: BeaconSource(INTERVAL 1000, 
>				CHANNEL 3,
>				SSID "madwifi",
>				BSSID $mac,
>				RT rates,
>				)
>    -> output;
>  
>  ar :: AssociationResponder(INTERVAL 1000,
>			     SSID "madwifi",
>			     BSSID $mac,
>			     RT rates,
>			     )
>    -> output;
>  
>  pr :: ProbeResponder(INTERVAL 1000,
>		       SSID "madwifi",
>		       BSSID $mac,
>		       CHANNEL 3,
>		       RT rates,
>		       )
>    -> output;
>  
>  auth :: OpenAuthResponder(BSSID $mac) ->output;
>  
>  
>  wifi_cl :: Classifier(0/00%0c, //mgt
>			0/08%0c); //data
>
>  // management
>  wifi_cl [0] -> management_cl :: Classifier(0/00%f0, //assoc req
>					     0/10%f0, //assoc resp
>					     0/40%f0, //probe req
>					     0/50%f0, //probe resp
>					     0/80%f0, //beacon
>					     0/a0%f0, //disassoc
>					     0/b0%f0, //disassoc
>					     );
>  
>  
>  
>  management_cl [0] -> Print ("assoc_req") -> ar;
>  management_cl [1] -> Print ("assoc_resp") -> Discard;
>  management_cl [2] -> pr;
>  management_cl [3] -> Print ("probe_req",200) ->bs :: BeaconScanner(RT rates) ->  Discard; 
>  management_cl [4] -> bs;
>  management_cl [5] -> Print ("disassoc") -> Discard;
>  management_cl [6] -> Print ("auth") -> auth;
>  
>  //data
>  wifi_cl [1] 
>    -> bssid_cl :: Classifier(16/000000000000,
>			      -);
>
>  bssid_cl [0]
>    -> WifiDecap() 
>    -> sniff_safe_t :: Tee()
>    -> SetPacketType(HOST) 
>    -> [1] output;
>  
>  bssid_cl [1]
>    -> WifiDecap()
>    -> sniff_ap_t :: Tee()
>    -> SetPacketType(HOST) 
>    -> [2] output;
>    
>  sniff_safe_t [1] -> ToHostSniffers(safe);
>  sniff_ap_t [1] -> ToHostSniffers(ap);
>
>  from_dev :: FromDevice($device);
>  from_dev -> wifi_cl;
>  
>  input [0] -> ToDevice($device);
>
>
>}
>
>// has one input and one output
>// takes and spits out ip packets
>elementclass LinuxIPHost {
>    $dev, $ip, $nm |
>
>  input -> CheckIPHeader()
>    -> EtherEncap(0x0800, 1:1:1:1:1:1, 2:2:2:2:2:2) 
>    -> SetPacketType(HOST) 
>    -> CycleCountAccum
>    -> to_host :: ToHost($dev);
>
>
>  from_host :: FromHost($dev, $ip/$nm) 
>    -> SetCycleCount
>    -> fromhost_cl :: Classifier(12/0806, 12/0800);
>
>
>  // arp packets
>  fromhost_cl[0] 
>    -> ARPResponder(0.0.0.0/0 1:1:1:1:1:1) 
>    -> SetPacketType(HOST) 
>    -> ToHost();
>  
>  // IP packets
>  fromhost_cl[1]
>    -> Strip(14)
>    -> CheckIPHeader 
>    -> GetIPAddress(16) 
>    -> MarkIPHeader(0)
>    -> output;
>
>}
>
>
>
>
>elementclass SniffDevice {
>    $device, $promisc|
>  from_dev :: FromDevice($device, PROMISC $promisc)
>  -> output;
>
>  input
>  -> to_dev :: ToDevice($device);
>}
>
>sniff_dev :: APDevice(ath0, 00:05:5D:9F:7C:1F, false);
>sched :: PrioSched()
>-> sniff_dev;
>
>route_q :: NotifierQueue(50) 
>-> WifiEncap(0x00, 00:00:00:00:00:00)
>-> SetTXRate(RATE 2)
>-> [0] sched;
>
>ecn_q :: ECNQueue(LENGTH 100, DEBUG false) 
> -> srcr_rate :: SetTXRate(ETHTYPE 0x092a,
>			   RATE 11, 
>			   ETT srcr_ett)
>
>-> WifiEncap(0x00, 00:00:00:00:00:00)
>
>-> [1] sched;
>
>
>Idle -> ap_control_q :: NotifierQueue(50) 
>-> [2] sched;
>Idle -> ap_data_q :: NotifierQueue(50)
>
>-> WifiEncap(0x02, 00:05:5D:9F:7C:1F)
>
>-> SetTXRate(RATE 2)
>-> [3] sched;
>
>// make sure this is listed first so it gets tap0
>srcr_host :: LinuxIPHost(srcr, 5.159.124.31, 255.0.0.0);
>
>srcr_arp :: ARPTable();
>srcr_lt :: LinkTable(IP 5.159.124.31);
>
>
>srcr_es :: ETTStat(ETHTYPE 0x0932, 
>		   ETH 00:05:5D:9F:7C:1F, 
>		   IP 5.159.124.31, 
>		   PERIOD 10000, 
>		   TAU 180000, 
>		   SIZE 1500,
>		   ARP srcr_arp,
>		   ETT srcr_ett);
>
>srcr_ett :: ETTMetric(ETT srcr_es,
>		      IP 5.159.124.31, 
>		      LT srcr_lt,
>		      2WAY_METRICS true,
>		      2_WEIGHT 14,
>		      4_WEIGHT 28,
>		      11_WEIGHT 63,
>		      22_WEIGHT 100);
>
>
>srcr_forwarder :: SRForwarder(ETHTYPE 0x092a, 
>			      IP 5.159.124.31, 
>			      ETH 00:05:5D:9F:7C:1F, 
>			      ARP srcr_arp, 
>			      SRCR srcr,
>			      LM srcr_ett,
>			      LT srcr_lt);
>
>srcr :: SRCR(ETHTYPE 0x092b, 
>	   IP 5.159.124.31, 
>	   ETH 00:05:5D:9F:7C:1F, 
>	   SR srcr_forwarder,
>	   LT srcr_lt, 
>	   ARP srcr_arp, 
>           LM srcr_ett,
>	   ROUTE_DAMPENING true,
>	   TIME_BEFORE_SWITCH 5,
>	   DEBUG false);
>
>srcr_gw :: GatewaySelector(ETHTYPE 0x092c, 
>		      IP 5.159.124.31, 
>		      ETH 00:05:5D:9F:7C:1F, 
>		      LT srcr_lt, 
>		      ARP srcr_arp, 
>		      PERIOD 15,
>		      GW false,
>		      LM srcr_ett);
>
>srcr_set_gw :: SetGateway(SEL srcr_gw);
>
>srcr_flood :: CounterFlood(ETHTYPE 0x0941,
>			   IP 5.159.124.31,
>			   ETH 00:05:5D:9F:7C:1F,
>			   BCAST_IP 5.255.255.255,
>			   COUNT 0,
>			   MAX_DELAY_MS 750,
>			   DEBUG false,
>			   HISTORY 1000);
>
>srcr_ratemon :: IPRateMonitor(BYTES, 1, 0);
>srcr_host -> srcr_host_cl :: IPClassifier(dst host 5.255.255.255,
>					  dst net 5.159.124.31 mask 255.0.0.0,
>					  -);
>
>
>srcr_data_ck :: SetSRChecksum() 
>srcr_forwarder[1] -> srcr_data_ck;
>srcr_forwarder[0] 
>  -> srcr_dt ::DecIPTTL
>  -> srcr_data_ck
>  -> srcr_data_t:: Tee(2) 
>  -> ecn_q;
>srcr_dt[1] -> ICMPError(5.159.124.31, timeexceeded, 0) -> srcr_host_cl;
>
>// SRCR handles data source-routing packets
>srcr_data_t[1] -> [1] srcr; //data packets (for link error replies)
>srcr_host_cl[0] -> [1] srcr_flood; //local broadcast packets
>srcr_host_cl[1] -> [1] srcr_ratemon; //ip packets for the wireless network
>srcr_host_cl[2] 
>  -> [0] srcr_set_gw [0] 
>  -> [1] srcr_ratemon; //ip packets for the gatewa
>
>srcr_flood [0] -> ecn_q;
>srcr_flood [1] 
>  -> StripSRHeader() 
>  -> CheckIPHeader()
>  -> srcr_host;
>
>srcr_ratemon [1] ->  
>gw_incoming_cl :: IPClassifier(src host 5.159.124.31,
>			       -);
>gw_incoming_cl [0] -> [2] srcr;
>gw_incoming_cl [1] 
>  -> gw_counter_incoming :: IPAddressCounter(USE_DST true)
>  -> [2] srcr; //ip packets for the wireless network
>
>srcr[0] -> SetSRChecksum -> route_q;
>srcr_es -> route_q;
>
>srcr_gw -> SetSRChecksum -> route_q;
>
>srcr_io_q :: InOrderQueue(LENGTH 100, PACKET_TIMEOUT 500, DEBUG false) 
>
>srcr_forwarder[2] //ip packets to me
>  -> srcr_io_q
>  -> StripSRHeader()
>  -> CheckIPHeader()
>  -> from_gw_cl :: IPClassifier(src net 5.0.0.0 mask 255.0.0.0,
>				-);
>from_gw_cl[0]
>  -> srcr_ratemon
>  -> srcr_host; 
>
>from_gw_cl[1] 
>-> [1] srcr_set_gw [1] 
>-> srcr_ratemon;
>txf :: WifiTXFeedback() 
>
>txf [0] -> Discard;
>txf [1] -> Print ("failure") -> Discard;
>// both successes and failures go to the LinkFailureDetection
>
>Idle
>-> failure_cl :: Classifier(12/092a) //srcr_forwarder
>-> srcr_fail_filter :: FilterFailures(MAX_FAILURES 15, ALLOW_SUCCESS false)
>-> ecn_q;
>
>
>
>sniff_dev [0] -> SetTXRate(RATE 2) -> ap_control_q;
>
>sniff_dev [2] -> ToHost(ap);/* ap */
>FromHost(ap, 12.159.124.31/8, ETHER 00:05:5D:9F:7C:1F) -> ap_data_q;
>
>
>sniff_dev [1] /* safe */
>-> HostEtherFilter(00:05:5D:9F:7C:1F, DROP_OTHER true, DROP_OWN true) 
>-> rxstats :: RXStats()
>
>
>-> ncl :: Classifier(
>		     12/092a, //srcr_forwarder
>		     12/092b, //srcr
>		     12/092c, //srcr_gw
>		     12/0941, //srcr_flood
>		     12/0932, //srcr_es
>		     -);
>
>
>// ethernet packets
>ncl[0] -> CheckSRHeader() -> srcr_dupe :: DupeFilter(WINDOW 100) -> [0] srcr_forwarder;
>ncl[1] -> CheckSRHeader() -> [0] srcr;
>ncl[2] -> CheckSRHeader() -> srcr_gw;
>ncl[3] -> srcr_flood;
>ncl[4] -> srcr_es;
>ncl[5] 
>-> ToHost(safe);
>
>FromHost(safe, 6.159.124.31/8, ETHER 00:05:5D:9F:7C:1F) 
>-> WifiEncap(0x0, 00:00:00:00:00:00)
>-> ap_control_q;
>

>_______________________________________________
>click mailing list
>click at amsterdam.lcs.mit.edu
>https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list