<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sarwiki.informatik.hu-berlin.de/index.php?action=history&amp;feed=atom&amp;title=Brn_master_20051109.click</id>
	<title>Brn master 20051109.click - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sarwiki.informatik.hu-berlin.de/index.php?action=history&amp;feed=atom&amp;title=Brn_master_20051109.click"/>
	<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Brn_master_20051109.click&amp;action=history"/>
	<updated>2026-04-03T20:18:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Brn_master_20051109.click&amp;diff=4233&amp;oldid=prev</id>
		<title>Kurth at 09:22, 25 January 2006</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Brn_master_20051109.click&amp;diff=4233&amp;oldid=prev"/>
		<updated>2006-01-25T09:22:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;  //&lt;br /&gt;
  // 802.11b access point&lt;br /&gt;
  //&lt;br /&gt;
  &lt;br /&gt;
  // needs INTERFACE (interface for the ap), SSID (name of the network), CHANNEL (operating channel), BEACON_INTERVAL&lt;br /&gt;
  // (interval for sending beacons in milliseconds)&lt;br /&gt;
  // input[0] from device with decap and so on, only management frames ???? filtering necessary (only packets for me?)&lt;br /&gt;
  // output[0] to device without encap, settx and so on&lt;br /&gt;
  elementclass AccessPoint {&lt;br /&gt;
      DSR $DSR, INTERFACE $device, SSID $ssid, CHANNEL $channel, BEACON_INTERVAL $beacon_interval |&lt;br /&gt;
  &lt;br /&gt;
      AddressInfo(ether_address $device:eth);&lt;br /&gt;
      winfo :: WirelessInfo(SSID $ssid, BSSID ether_address, CHANNEL $channel, INTERVAL $beacon_interval);&lt;br /&gt;
      rates :: AvailableRates(DEFAULT 2 4 11 12 18 22);&lt;br /&gt;
  &lt;br /&gt;
      input[0]&lt;br /&gt;
      -&amp;gt; mgt_cl :: Classifier(0/00%f0, //assoc req&lt;br /&gt;
                              0/10%f0, //assoc resp&lt;br /&gt;
            0/40%f0, //probe req&lt;br /&gt;
            0/50%f0, //probe resp&lt;br /&gt;
            0/80%f0, //beacon&lt;br /&gt;
            0/a0%f0, //disassoc&lt;br /&gt;
            0/b0%f0, //disassoc&lt;br /&gt;
            );&lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[0]&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;assoc_req&amp;quot;)&lt;br /&gt;
      //-&amp;gt; AssociationResponder(WIRELESS_INFO winfo, RT rates)&lt;br /&gt;
      -&amp;gt; BRNAssocResponder(DEBUG false, WIRELESS_INFO winfo, RT rates, AssocList client_lst)&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;assoc_reply&amp;quot;)&lt;br /&gt;
      -&amp;gt; [0]output;&lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[1]&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;assoc_resp&amp;quot;)&lt;br /&gt;
      -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[2]&lt;br /&gt;
      -&amp;gt; BeaconSource(WIRELESS_INFO winfo, RT rates)&lt;br /&gt;
      -&amp;gt; Discard();&lt;br /&gt;
      Idle()&lt;br /&gt;
      -&amp;gt; [0]output;&lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[3]&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;probe_resp&amp;quot;)&lt;br /&gt;
      -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[4]&lt;br /&gt;
      -&amp;gt; BeaconScanner(RT rates)&lt;br /&gt;
      -&amp;gt; Discard; &lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[5]&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;disassoc&amp;quot;)&lt;br /&gt;
      -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
      mgt_cl[6]&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;auth&amp;quot;)&lt;br /&gt;
      -&amp;gt; OpenAuthResponder(WIRELESS_INFO winfo)&lt;br /&gt;
      //-&amp;gt; PrintWifi(&amp;quot;auth_reply&amp;quot;)&lt;br /&gt;
      -&amp;gt; [0]output;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  //&lt;br /&gt;
  // BRN Dynamic Source Routing&lt;br /&gt;
  //&lt;br /&gt;
  &lt;br /&gt;
  // input[0] - ethernet (802.3) frames from external nodes (no BRN protocol)&lt;br /&gt;
  // input[1] - BRN DSR packets from internal nodes&lt;br /&gt;
  // input[2] - failed transmission of a BRN DSR packet (broken link) from ds&lt;br /&gt;
  // [0]output - ethernet (802.3) frames to external nodes/clients or me (no BRN protocol)&lt;br /&gt;
  // [1]output - BRN DSR packets to internal nodes (BRN DSR protocol)&lt;br /&gt;
  elementclass DSR {$DEVICE_1, $DEVICE_2, $DEVICE_3 |&lt;br /&gt;
  &lt;br /&gt;
    //&lt;br /&gt;
    // definitions&lt;br /&gt;
    //&lt;br /&gt;
    rc :: BrnRouteCache(ACTIVE false,&lt;br /&gt;
      DROP /* 1/20 = 5% */ 0, SLICE /* 100ms */ 0, TTL /* 4*100ms */4);&lt;br /&gt;
    lt :: BrnLinkTable(rc);&lt;br /&gt;
    id :: NodeIdentity($DEVICE_1, $DEVICE_2, $DEVICE_3, lt);&lt;br /&gt;
    brn_encap :: BRNEncap;&lt;br /&gt;
    dsr_decap :: DSRDecap(id, lt);&lt;br /&gt;
    dsr_encap :: DSREncap(id, lt);&lt;br /&gt;
    nb :: DstClassifier(id, client_lst);&lt;br /&gt;
    querier :: RouteQuerier(lt, dsr_encap, brn_encap, dsr_decap);&lt;br /&gt;
    req_forwarder :: RequestForwarder(id, lt, dsr_decap, dsr_encap, brn_encap, querier, client_lst);&lt;br /&gt;
    rep_forwarder :: ReplyForwarder(id, dsr_decap, querier, client_lst, dsr_encap, lt);&lt;br /&gt;
    src_forwarder :: SrcForwarder(id, client_lst, dsr_encap, dsr_decap, lt);&lt;br /&gt;
    err_forwarder :: ErrorForwarder(id, lt, client_lst, dsr_encap, dsr_decap, querier, brn_encap);&lt;br /&gt;
  &lt;br /&gt;
    // ------------------&lt;br /&gt;
    // external packets&lt;br /&gt;
    // ------------------&lt;br /&gt;
    input[0]&lt;br /&gt;
    //-&amp;gt; Print(XXXXX)&lt;br /&gt;
    -&amp;gt; clf_bcast :: Classifier(0/ffffffffffff, -); // broadcast &amp;amp; unicast packets&lt;br /&gt;
  &lt;br /&gt;
    clf_bcast[0]&lt;br /&gt;
    -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
    clf_bcast[1]&lt;br /&gt;
    //-&amp;gt; Print(from_ext_node)&lt;br /&gt;
    -&amp;gt; nb;&lt;br /&gt;
  &lt;br /&gt;
    nb[0] // packet is for me&lt;br /&gt;
    -&amp;gt; [0]output;&lt;br /&gt;
  &lt;br /&gt;
    nb[1] // packet for associated client (external)&lt;br /&gt;
    -&amp;gt; [0]output;&lt;br /&gt;
  &lt;br /&gt;
    nb[2] // packet for internal nodes&lt;br /&gt;
    //-&amp;gt; Print(dest_far_away)&lt;br /&gt;
    -&amp;gt; querier;&lt;br /&gt;
  &lt;br /&gt;
    querier[0]-&amp;gt; [1]output; // rreq packets (broadcast)&lt;br /&gt;
    querier[1]-&amp;gt; [0]src_forwarder; // src routed packets (unicast)&lt;br /&gt;
  &lt;br /&gt;
    src_forwarder[0]&lt;br /&gt;
    //-&amp;gt; Print(forward_packet)&lt;br /&gt;
    -&amp;gt; [1]output;&lt;br /&gt;
  &lt;br /&gt;
    src_forwarder[1]&lt;br /&gt;
    //-&amp;gt; Print(for_me_or_assoc_client)&lt;br /&gt;
    -&amp;gt; [0]output;&lt;br /&gt;
  &lt;br /&gt;
    // ------------------&lt;br /&gt;
    // internal packets&lt;br /&gt;
    // ------------------&lt;br /&gt;
    input[1]&lt;br /&gt;
    //-&amp;gt; $NB_LST // collect information about neighbors&lt;br /&gt;
    //-&amp;gt; NeighborList($NB_LST)&lt;br /&gt;
    -&amp;gt; dsrclf :: Classifier(6/01, //DSR_RREQ&lt;br /&gt;
                            6/02, //DSR_RREP&lt;br /&gt;
                            6/03, //DSR_RERR&lt;br /&gt;
                            6/04, //DSR_SRC&lt;br /&gt;
                            );&lt;br /&gt;
  &lt;br /&gt;
    dsrclf[0]&lt;br /&gt;
    //-&amp;gt; Print(rreq)&lt;br /&gt;
    -&amp;gt; req_forwarder[0]&lt;br /&gt;
    -&amp;gt; [1]output;&lt;br /&gt;
  &lt;br /&gt;
    req_forwarder[1]&lt;br /&gt;
    //-&amp;gt; BRNPrint(to_replier)&lt;br /&gt;
    -&amp;gt; [0]rep_forwarder&lt;br /&gt;
    -&amp;gt; [1]output;&lt;br /&gt;
  &lt;br /&gt;
    dsrclf[1]&lt;br /&gt;
    //-&amp;gt; Print(reply)&lt;br /&gt;
    -&amp;gt; [1]rep_forwarder;&lt;br /&gt;
  &lt;br /&gt;
    dsrclf[2]&lt;br /&gt;
    //-&amp;gt; Print(error)&lt;br /&gt;
    -&amp;gt; [1]err_forwarder&lt;br /&gt;
    -&amp;gt; [1]output;&lt;br /&gt;
  &lt;br /&gt;
    dsrclf[3]&lt;br /&gt;
    //-&amp;gt; Print(dsr_src)&lt;br /&gt;
    -&amp;gt; [1]src_forwarder;&lt;br /&gt;
  &lt;br /&gt;
    // ------------------&lt;br /&gt;
    // undeliverable packets&lt;br /&gt;
    // ------------------&lt;br /&gt;
    input[2]&lt;br /&gt;
    -&amp;gt; [0]err_forwarder;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  //&lt;br /&gt;
  // BRN DHCP&lt;br /&gt;
  //&lt;br /&gt;
  &lt;br /&gt;
  // input  - broadcast packets (no arp, no brn)&lt;br /&gt;
  // output - dhcp packets (to wireless queue)&lt;br /&gt;
  elementclass DHCP {&lt;br /&gt;
  &lt;br /&gt;
    server :: DHCPServerLeases(10.9.0.1 , 10.9.0.0);&lt;br /&gt;
  &lt;br /&gt;
    input // check for dhcp&lt;br /&gt;
      //-&amp;gt; Print(Check_for_dhcp)&lt;br /&gt;
      -&amp;gt; EtherDecap()&lt;br /&gt;
      -&amp;gt; Align(4, 0)&lt;br /&gt;
      -&amp;gt; ip_check :: CheckIPHeader(CHECKSUM true)&lt;br /&gt;
      -&amp;gt; udp_check::CheckUDPHeader&lt;br /&gt;
      -&amp;gt; ipclass :: IPClassifier(icmp type echo-reply, -);&lt;br /&gt;
  &lt;br /&gt;
    ipclass[0]&lt;br /&gt;
      //-&amp;gt; Print(&amp;quot;ICMP ECHO REPLY&amp;quot;)&lt;br /&gt;
      -&amp;gt; [1]serverOffer :: DHCPServerOffer(server);&lt;br /&gt;
  &lt;br /&gt;
    ipclass[1]&lt;br /&gt;
      -&amp;gt; CheckDHCPMsg(request)&lt;br /&gt;
      -&amp;gt; class :: DHCPClassifier( discover, request, release, -);&lt;br /&gt;
  &lt;br /&gt;
    class[0]&lt;br /&gt;
      //-&amp;gt; Print(DISCOVER)&lt;br /&gt;
      -&amp;gt; [0]serverOffer;&lt;br /&gt;
  &lt;br /&gt;
    class[1]&lt;br /&gt;
      //-&amp;gt; Print(REQUEST)&lt;br /&gt;
      -&amp;gt; DHCPServerACKorNAK(server)&lt;br /&gt;
      -&amp;gt; UDPIPEncap( 10.9.0.1, 67, 255.255.255.255, 68 )&lt;br /&gt;
      -&amp;gt; EtherEncap( 0x0800, my_wlan, ff:ff:ff:ff:ff:ff)&lt;br /&gt;
      -&amp;gt; output;&lt;br /&gt;
  &lt;br /&gt;
    class[2]&lt;br /&gt;
      //-&amp;gt; Print(RELEASE)&lt;br /&gt;
      -&amp;gt; DHCPServerRelease(server);&lt;br /&gt;
  &lt;br /&gt;
    class[3]&lt;br /&gt;
      //-&amp;gt; Print(OTHER_drop)&lt;br /&gt;
      -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
    serverOffer[0]&lt;br /&gt;
      -&amp;gt; UDPIPEncap( 10.9.0.1, 67, 255.255.255.255, 68 )&lt;br /&gt;
      -&amp;gt; EtherEncap( 0x0800, my_wlan, ff:ff:ff:ff:ff:ff)&lt;br /&gt;
      -&amp;gt; output;&lt;br /&gt;
  &lt;br /&gt;
    serverOffer[1]&lt;br /&gt;
      -&amp;gt; icmpEncap::ICMPPingEncap(10.9.0.1, 255.255.255.255)&lt;br /&gt;
      -&amp;gt; DHCP_ICMP_Encap(serverOffer.dhcp_icmp_ping_src, serverOffer.dhcp_icmp_ping_dst)&lt;br /&gt;
      -&amp;gt; output;&lt;br /&gt;
  &lt;br /&gt;
    class[4] -&amp;gt; Discard();&lt;br /&gt;
    class[5] -&amp;gt; Discard();&lt;br /&gt;
    class[6] -&amp;gt; Discard();&lt;br /&gt;
    class[7] -&amp;gt; Discard();&lt;br /&gt;
    class[8] -&amp;gt; Discard();&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  out_q_0 :: Null(); //wifi_out_queue does the job&lt;br /&gt;
  &lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // Integration of DSR&lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  AddressInfo(my_wlan ath0:eth);&lt;br /&gt;
  AddressInfo(my_vlan eth0:eth);&lt;br /&gt;
  //me :: NodeIdentity(my_wlan, my_vlan);&lt;br /&gt;
  nb_lst :: NeighborList(); // collect information about neighbors&lt;br /&gt;
  dsr :: DSR(ath0, eth0, eth0); // using DSR&lt;br /&gt;
  ds :: BRNDS(dsr/id, nb_lst);&lt;br /&gt;
  &lt;br /&gt;
  client_lst :: AssocList();&lt;br /&gt;
  client_ds :: ClientDS(ath0, eth0, vlan2, vlan0, client_lst);&lt;br /&gt;
  &lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // AP-Functionality&lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // TODO: BEACON_INTERVAL 100&lt;br /&gt;
  ap :: AccessPoint(DSR dsr, INTERFACE ath0, SSID ##brn2##, CHANNEL 1, BEACON_INTERVAL 100);&lt;br /&gt;
  &lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // Link Metric&lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  //ett_metric :: BRNETTMetric(LT dsr/lt);&lt;br /&gt;
  etx_metric :: BRNETXMetric(LT dsr/lt);&lt;br /&gt;
  &lt;br /&gt;
  link_stat :: BRNLinkStat(ETHTYPE 0x0a04, &lt;br /&gt;
          NODEIDENTITY dsr/id, &lt;br /&gt;
          PERIOD 3000,&lt;br /&gt;
          TAU 30000,&lt;br /&gt;
          //PROBES &amp;quot;2 60 12 60 2 1400 4 1400 11 1400 22 1400 12 1400 18 1400 24 1400 36 1400 48 1400 72 1400 96 1400&amp;quot;,&lt;br /&gt;
          //ETT ett_metric,&lt;br /&gt;
          ETX etx_metric,&lt;br /&gt;
          PROBES &amp;quot;22 1000&amp;quot;,&lt;br /&gt;
          RT ap/rates);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // ARP-Table required for gateway functionality&lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  arp :: ARPTable();&lt;br /&gt;
  &lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // Handling ath0-device&lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  FromDevice(ath0) //, PROMISC true&lt;br /&gt;
    -&amp;gt; Prism2Decap()&lt;br /&gt;
    -&amp;gt; ExtraDecap()&lt;br /&gt;
    -&amp;gt; FilterPhyErr()&lt;br /&gt;
    -&amp;gt; filter :: FilterTX();&lt;br /&gt;
  &lt;br /&gt;
  filter[0]&lt;br /&gt;
    -&amp;gt; WifiDupeFilter()&lt;br /&gt;
    -&amp;gt; mgm_clf :: Classifier(0/00%0f, -); // management frames&lt;br /&gt;
  &lt;br /&gt;
  mgm_clf[0] //handle mgmt frames&lt;br /&gt;
    -&amp;gt; ap&lt;br /&gt;
    -&amp;gt; SetTXRate(22) // ap beacons send at constant bitrate&lt;br /&gt;
    -&amp;gt; wlan_out_queue :: NotifierQueue(50);&lt;br /&gt;
  &lt;br /&gt;
  mgm_clf[1] //handle other frames (data)&lt;br /&gt;
    -&amp;gt; WifiDecap()&lt;br /&gt;
    //-&amp;gt; rxstats :: RXStats()&lt;br /&gt;
    -&amp;gt; clf_bcast :: Classifier(0/ffffffffffff, -); // broadcast &amp;amp; unicast packets&lt;br /&gt;
  &lt;br /&gt;
    clf_bcast[0]&lt;br /&gt;
  //  -&amp;gt; ToDump(from.dat, ENCAP ETHER)&lt;br /&gt;
    -&amp;gt; arp_clf :: Classifier (12/0806, 12/8086, -);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  // Handling DHCP queries&lt;br /&gt;
  // ----------------------------------------------------------------------------&lt;br /&gt;
  //TODO&lt;br /&gt;
  dhcp :: DHCP();&lt;br /&gt;
  arp_clf[2] // check for dhcp&lt;br /&gt;
  //-&amp;gt; Discard;&lt;br /&gt;
  //Idle()&lt;br /&gt;
    -&amp;gt; dhcp&lt;br /&gt;
    -&amp;gt; WifiEncap(0x02, WIRELESS_INFO ap/winfo) //to station&lt;br /&gt;
    -&amp;gt; SetTXRate(22) // currently bitrate with clients no adopted&lt;br /&gt;
    -&amp;gt; wlan_out_queue;&lt;br /&gt;
  &lt;br /&gt;
  clf_bcast[1]&lt;br /&gt;
    -&amp;gt; protoclf :: Classifier(12/8086, //brn-protocoll&lt;br /&gt;
                            -);&lt;br /&gt;
  arp_clf[0] -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  arp_clf[1] // brn broadcasts&lt;br /&gt;
    -&amp;gt; protoclf;&lt;br /&gt;
  &lt;br /&gt;
  protoclf[1] //simple packets (no brn)&lt;br /&gt;
    //-&amp;gt; PrintWifi(from_dev)&lt;br /&gt;
    -&amp;gt; Classifier(12/0800) // ip packet&lt;br /&gt;
    -&amp;gt; host_cl :: IPClassifier(dst net 10.9.1.1 mask 255.255.255.0,&lt;br /&gt;
          -);&lt;br /&gt;
  &lt;br /&gt;
  host_cl[0] // for other brn clients or internal nodes&lt;br /&gt;
    -&amp;gt; [0]dsr;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  //AddressInfo(gw 00:0F:B5:3F:21:60);&lt;br /&gt;
  //AddressInfo(gw 00:0F:B5:3F:1B:BF);&lt;br /&gt;
  //AddressInfo(gw 00:0F:B5:3F:1E:EA);&lt;br /&gt;
  //AddressInfo(gw 00:0F:B5:3F:20:D6);&lt;br /&gt;
  &lt;br /&gt;
  host_cl[1] // packet for the outside world&lt;br /&gt;
    //-&amp;gt; Print(set_brn_gw)&lt;br /&gt;
    //-&amp;gt; BRNGateway(gw) // prefered gw&lt;br /&gt;
    -&amp;gt; [0]dsr;&lt;br /&gt;
  &lt;br /&gt;
  protoclf[0] //brn packets&lt;br /&gt;
    //-&amp;gt; Print(brn, 128)&lt;br /&gt;
    -&amp;gt; EtherDecap()&lt;br /&gt;
    -&amp;gt; nb_lst //know your neighbor&lt;br /&gt;
    -&amp;gt; brnclf :: Classifier(0/01, //BrnSDP&lt;br /&gt;
                            0/02, //BrnTFTP&lt;br /&gt;
                            0/03, //BrnDSR&lt;br /&gt;
                            0/04, //BrnBcast&lt;br /&gt;
                            0/06, //LinkProbe&lt;br /&gt;
                            -        //other&lt;br /&gt;
                            );&lt;br /&gt;
  &lt;br /&gt;
  brnclf[0] // sdp &lt;br /&gt;
  -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  brnclf[1] // tftp&lt;br /&gt;
  -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  brnclf[2] //dsr&lt;br /&gt;
    -&amp;gt; [1]dsr;&lt;br /&gt;
  &lt;br /&gt;
  brnclf[3] //bcast&lt;br /&gt;
    -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  brnclf[4] //linkprobe&lt;br /&gt;
    //-&amp;gt; Print(linkprobe)&lt;br /&gt;
    -&amp;gt; link_stat&lt;br /&gt;
    -&amp;gt; SetTimestamp()&lt;br /&gt;
    -&amp;gt; EtherEncap(0x8086, my_wlan, ff:ff:ff:ff:ff:ff)&lt;br /&gt;
    //-&amp;gt; Print(link_probe_to_dev)&lt;br /&gt;
    -&amp;gt; WifiEncap(0x00, 0:0:0:0:0:0) // packet to brn peer node&lt;br /&gt;
    -&amp;gt; wlan_out_queue;&lt;br /&gt;
  &lt;br /&gt;
  brnclf[5] //other&lt;br /&gt;
    -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  //Idle()&lt;br /&gt;
  //-&amp;gt; [1]udt&lt;br /&gt;
  &lt;br /&gt;
  dsr[0] //for an assoc client&lt;br /&gt;
    //-&amp;gt; Print(from_dsr0)&lt;br /&gt;
    -&amp;gt; dst_clf :: DstClassifier(dsr/id, client_lst);&lt;br /&gt;
  &lt;br /&gt;
  //udt[0]&lt;br /&gt;
  //  -&amp;gt; Print(UDT_0)&lt;br /&gt;
  //  -&amp;gt; dst_clf;&lt;br /&gt;
  &lt;br /&gt;
  dst_clf[1] // for assoc client&lt;br /&gt;
    //-&amp;gt; Print(packet_assoc_client_raw)&lt;br /&gt;
    -&amp;gt; client_ds;&lt;br /&gt;
  &lt;br /&gt;
  client_ds[0]&lt;br /&gt;
    //-&amp;gt; Print(wireless_client)&lt;br /&gt;
    -&amp;gt; WifiEncap(0x02, WIRELESS_INFO ap/winfo) //to station&lt;br /&gt;
    -&amp;gt; SetTXRate(22) // no bitrate selection to client nodes!&lt;br /&gt;
    -&amp;gt; wlan_out_queue;&lt;br /&gt;
  &lt;br /&gt;
  client_ds[1]&lt;br /&gt;
    -&amp;gt; dev_eth0_q :: Queue&lt;br /&gt;
    -&amp;gt; dev_eth0 :: ToDevice(eth0); //eth0&lt;br /&gt;
  &lt;br /&gt;
  client_ds[2]&lt;br /&gt;
    -&amp;gt; Discard; //vlan2&lt;br /&gt;
  &lt;br /&gt;
  client_ds[3]&lt;br /&gt;
    -&amp;gt; Discard; //vlan0 (debug)&lt;br /&gt;
  &lt;br /&gt;
  dst_clf[0]&lt;br /&gt;
    //-&amp;gt; Print(packet_for_me)&lt;br /&gt;
    -&amp;gt; Classifier(12/0800) // ip packet&lt;br /&gt;
    -&amp;gt; CheckIPHeader(14)&lt;br /&gt;
    //-&amp;gt; IPPrint(xxx)&lt;br /&gt;
    -&amp;gt; tohost_cl :: IPClassifier(dst net 10.9.1.1 mask 255.255.255.0,&lt;br /&gt;
          -);&lt;br /&gt;
  &lt;br /&gt;
  dst_clf[2]&lt;br /&gt;
    //-&amp;gt; Print(Unknown)&lt;br /&gt;
    -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  tohost_cl[0]&lt;br /&gt;
    //-&amp;gt; Print(to_ping)&lt;br /&gt;
    -&amp;gt; EtherDecap()&lt;br /&gt;
    -&amp;gt; CheckIPHeader&lt;br /&gt;
    -&amp;gt; ICMPPingResponder&lt;br /&gt;
    -&amp;gt; BRNEtherEncap&lt;br /&gt;
    //-&amp;gt; Print(ping_resp)&lt;br /&gt;
    -&amp;gt; [0]dsr; // back on route&lt;br /&gt;
  &lt;br /&gt;
  tohost_cl[1] // for the tun device&lt;br /&gt;
    //-&amp;gt; Print(ToHost)&lt;br /&gt;
  //  -&amp;gt; IPPrint(ToHost)&lt;br /&gt;
  //  -&amp;gt; ToHost(ath0);&lt;br /&gt;
    -&amp;gt; SetEtherAnno()&lt;br /&gt;
    -&amp;gt; MarkIPHeader(14)&lt;br /&gt;
    -&amp;gt; rewriter2 :: EtherIpAddrRewriter(ACTIVE false)&lt;br /&gt;
    //-&amp;gt; IPPrint(before) -&amp;gt; Print(before)&lt;br /&gt;
    -&amp;gt; dev_eth0_q;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  //  -&amp;gt; Print(to_tun)&lt;br /&gt;
  //  -&amp;gt; Strip(14)&lt;br /&gt;
  //  -&amp;gt; MarkIPHeader(0)&lt;br /&gt;
    //-&amp;gt; StoreIPEthernet(arp) // store ip mac combination&lt;br /&gt;
    //-&amp;gt; EtherDecap()&lt;br /&gt;
  //  -&amp;gt; CheckIPHeader(0)&lt;br /&gt;
  //  -&amp;gt; IPPrint(to_fake)&lt;br /&gt;
    // replace the real destination address with the fake address&lt;br /&gt;
  //  -&amp;gt; StoreIPAddress(192.168.3.22, 12) //src&lt;br /&gt;
  //  -&amp;gt; SetPacketType(HOST) &lt;br /&gt;
  //  -&amp;gt; SetIPChecksum&lt;br /&gt;
  //  -&amp;gt; IPPrint(to_fake2)&lt;br /&gt;
  //  -&amp;gt; EtherEncap(0x0800, my_vlan, my_vlan)&lt;br /&gt;
  //  -&amp;gt; Print(to_fake2)&lt;br /&gt;
  //  -&amp;gt; ToHost(eth0);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  dsr[1] //for an other internal node; make use of ds&lt;br /&gt;
    //-&amp;gt; Print(from_dsr1)&lt;br /&gt;
    -&amp;gt; ds;&lt;br /&gt;
  ds[0] -&amp;gt; out_q_0;&lt;br /&gt;
  ds[1] -&amp;gt; Discard;&lt;br /&gt;
  ds[2] -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  out_q_0&lt;br /&gt;
    -&amp;gt; WifiEncap(0x00, 0:0:0:0:0:0) // sollte das WDS Packet erzeugen mit Hilfe eines Parameters&lt;br /&gt;
    -&amp;gt; wlan_out_queue&lt;br /&gt;
    -&amp;gt; SetTXRate(22)&lt;br /&gt;
    -&amp;gt; SetTXPower(63)&lt;br /&gt;
    //-&amp;gt; PrintWifi(to_wlan)&lt;br /&gt;
    //-&amp;gt; ToDump(todev_node5, ENCAP 802_11)&lt;br /&gt;
    -&amp;gt; ExtraEncap()&lt;br /&gt;
    -&amp;gt; ToDevice(ath0);&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  filter[1] //take a closer look at tx-annotated packets&lt;br /&gt;
    -&amp;gt; failures :: FilterFailures();&lt;br /&gt;
  &lt;br /&gt;
  failures[0]&lt;br /&gt;
    -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  failures[1]&lt;br /&gt;
    -&amp;gt; WifiDupeFilter()&lt;br /&gt;
    -&amp;gt; mgm_clf2 :: Classifier(0/00%0f, -); // management frames&lt;br /&gt;
  &lt;br /&gt;
  mgm_clf2[0] //handle mgmt frames&lt;br /&gt;
    -&amp;gt; Discard;&lt;br /&gt;
  &lt;br /&gt;
  mgm_clf2[1] //other frames&lt;br /&gt;
    //-&amp;gt; PrintWifi(failure)&lt;br /&gt;
    -&amp;gt; WifiDecap()&lt;br /&gt;
    -&amp;gt; Classifier(12/8086) //handle only brn protocol&lt;br /&gt;
    //-&amp;gt; Print(failure)&lt;br /&gt;
    -&amp;gt; EtherDecap()&lt;br /&gt;
    -&amp;gt; [2]dsr;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  // ------------------------------------------------&lt;br /&gt;
  // Test Area&lt;br /&gt;
  // ------------------------------------------------&lt;br /&gt;
  &lt;br /&gt;
  AddressInfo(peer_client 00:11:11:3E:B8:79);&lt;br /&gt;
  &lt;br /&gt;
  FromDevice(eth0) // debug queue&lt;br /&gt;
    -&amp;gt; _tst_clf1 :: Classifier(12/0800,-) // ip packet&lt;br /&gt;
    -&amp;gt; MarkIPHeader(14)&lt;br /&gt;
    -&amp;gt; _tst_clf2 :: IPClassifier(port ##port##, -)&lt;br /&gt;
    //-&amp;gt; IPPrint(from_vlan0, TIMESTAMP true)&lt;br /&gt;
    //-&amp;gt; Print(from_vlan0)&lt;br /&gt;
    -&amp;gt; SetEtherAnno()&lt;br /&gt;
    -&amp;gt; rewriter1 :: EtherIpAddrRewriter()&lt;br /&gt;
    //-&amp;gt; IPPrint(rewritten, TIMESTAMP true)&lt;br /&gt;
    //-&amp;gt; Print(rewritten)&lt;br /&gt;
    -&amp;gt; host_cl;&lt;br /&gt;
  &lt;br /&gt;
  _tst_clf1[1] -&amp;gt; ToHost(eth0);&lt;br /&gt;
  _tst_clf2[1] -&amp;gt; ToHost(eth0);&lt;br /&gt;
  &lt;br /&gt;
  ch :: CompoundHandler( debug, &amp;quot;ds dsr/id dsr/lt dsr/dsr_encap&lt;br /&gt;
    dsr/brn_encap dsr/dsr_decap client_lst  nb_lst dsr/querier &lt;br /&gt;
    dsr/req_forwarder dsr/rep_forwarder dsr/src_forwarder dsr/err_forwarder&amp;quot;, false );&lt;br /&gt;
  &lt;br /&gt;
  poki :: PokeHandlers(//write client_lst.insert 00:0e:35:a2:e4:31 ath0, //associate client with node1&lt;br /&gt;
  //            write madwifi_rate.debug true,&lt;br /&gt;
  //            write dhcp/server.dhcpd_conf &lt;br /&gt;
  //            subnet 10.9.1.0 netmask 255.255.255.0{&lt;br /&gt;
  //              option routers 10.9.1.1&lt;br /&gt;
  //              option subnet-mask 255.255.255.0&lt;br /&gt;
  //              option domain-name brn&lt;br /&gt;
  //              option domain-name-servers 141.20.20.50&lt;br /&gt;
  //              range dynamic-bootp 10.9.1.2 10.9.1.30&lt;br /&gt;
  //              default-lease-time 3000&lt;br /&gt;
  //              max-lease-time 6000&lt;br /&gt;
  //            },&lt;br /&gt;
              wait 1,&lt;br /&gt;
  //            read dhcp/server.read_free_leases,&lt;br /&gt;
  //            write dsr/querier.fixed_route&lt;br /&gt;
  //              00:0f:b5:3f:21:60&lt;br /&gt;
  //              00:0f:b5:3f:20:d6&lt;br /&gt;
  //              00:0f:b5:3f:1e:ea&lt;br /&gt;
  //              00:0f:b5:0b:95:29&lt;br /&gt;
  //              00:0f:b5:3f:1b:bf&lt;br /&gt;
  //              00:0e:35:a2:e4:31&lt;br /&gt;
              );&lt;/div&gt;</summary>
		<author><name>Kurth</name></author>
	</entry>
</feed>