[Click] How to write to /proc in a click element

Robert Sombrutzki sombrutz at informatik.hu-berlin.de
Mon Jul 27 11:49:40 EDT 2009


Hi,
i think, it's not the best way to use a sysctl to set the channel, because you 
can not control which packets are sent on which channel, since you have 
several queues. Example: you have packet a and b , you want to sent packet a 
on channel 1 and b on 2. How do you want to control that the new channel is 
set between these two packets ? Of course, you can delay packet b until the 
new channel is set, but that has no good performance. I think it better to 
set the channel using an annotation on the packet. You can extend the 
ath-header (use AthdescEncap) with an extra field for the channel, which 
should used for the packet. In the madwifi-driver (e.g. in 
ieee80211_output.c), you check for the encap-type, the field in the header 
and the channel and switch to the new channel ( struct ieee80211com includes 
pointer to the channel-switch-function: ic_set_channel). The problem here is, 
that you have to sent a packet to switch the channel, but therefor it is 
precise. To switch the channel without transmitting a packet, you can 
generate a packet which just initiates the changing the channel, but which is 
discard by the driver afterwards. According to the channel you can mark such 
kind of packets using an extention to the ath-header.
I use this solution and it works well.

Regards,
Robert
>Hi,
>
>Can someone please advise me how to write something in /proc/sys in a click
>event? I need to change the channel in MadWifi upon reception of a control
>packet. I am planning on writing a sysctl handler in madwifi to change the
>channel upon request, and I need to trigger it using Click. If someone has a
>better suggestion to do this - I'll be glad to know!
>
>Thanks for your help and time.
>
>Ashish


More information about the click mailing list