printk(KERN_INFO "")
//一覧
dmesg
//出力後、ログ削除
sudo dmesg -c
メッセージ処理をしているので、名前の通りデバッグに使えそう?
- ieee80211_proto_attach
- ieee80211_aclator_register
- ieee80211_fix_rate
- ieee80211_proto.c
- ieee80211_reset_erp
- ieee80211_set_shortslottime
- ieee80211_rateset basic11g
- ieee80211_init
- ieee80211_open
- ieee80211_start_running
- ieee80211_stop
- ieee80211_tx_timeout
- ieee80211_newstate
- 通信時に呼ばれるもの
| 関数名 |
タイミング |
格納デバイス |
備考 |
| ieee80211_parent_queue_xmin |
パケット送信毎 |
ieee80211_vap |
|
| ieee80211_input |
パケット受信時 |
ieee80211_vap |
|
| if_ath.c |
パケット受信時 |
ath_softc |
ieee80211_inputより遥かに高頻度に呼ばれる、こっちの方がレイヤが下?階層的にはath_softc->ieee80211_vap。 |
- いずれもパケットの送受信カウントを更新している場所
- その他特定条件で呼ばれるもの
| 関数名 |
タイミング |
備考 |
| IEEE80211_DISCARD_MAC |
|
パケ落ち?ただし定義部分がなし |
| accept_data_frame |
|
パケット落ちを判定できるかも? |
- ログとして使えるパラメータ
| 変数名 |
型 |
備考 |
| tx_packets |
unsigned long int |
送信数 |
| tx_bytes |
unsigned long int |
送信量 |
| rx_packets |
unsigned long int |
受信数 |
| rx_bytes |
unsigned long int |
受信量 |
| rx_errors |
unsigned long int |
エラー数(パケ落ち数?未検証) |
| 変数名 |
型 |
備考 |
| is_rx_mgtdiscard |
unsigned long int |
パケ落ち数?(未検証) |
- マルチキャスト関連
- 関係ありそうな関数・パラメータ・ファイル
- IEEE80211_IS_MULTICAST : アドレスを引数にして判定
- IEEE80211_M_STA :
- PACKET_MULTICAST :
- ieee80211.h : パケットのフレームなどの定義。rts/ctsのフレームもここ。
- ath_hal_setuptxdesc : rts/cts dulation
- IEEE80211_IS_MULTICASTがある場所
- ieee80211_input.c
- ieee80211_node.c
- ieee80211_find_txnode : destination address
- IEEE80211_M_STAがある場所
- ieee80211_input.c
- ieee80211_wireless.c
- ieee80211_output.c
- ieee80211_scan_sta.c
- ieee80211_node.c
- ieee80211.c : mulicast rate
- if_ath.c
ieee80211_crypto.c
if (!IEEE80211_IS_MULTICAST(wh->i_addr1)) {
skb = ieee80211_defrag(ni, skb, hdrspace);
if (skb == NULL) {
/* Fragment dropped or frame not complete yet */
goto out;
}
}
| ieee80211.h |
| ieee80211_frame |
generic definitions for IEEE 802.11 frames |
| ieee80211_qosframe |
|
| ieee80211_frame_addr4 |
|
| ieee80211_qosframe_addr4 |
|
| ieee80211_ctlframe_addr2 |
|
| ieee80211_mnf |
Management Notification Frame |
| ieee80211_frame_min |
Control frames |
| ieee80211_frame_rts |
RTS frames |
| ieee80211_frame_cts |
CTS frames |
| ieee80211_frame_ack |
ACK frames |
| ieee80211_frame_pspoll |
|
| ieee80211_frame_cfend |
NB: also CF-End+CF-Ack |
ただ、madwifi内で他で参照されていない模様
- パケットのアドレス構造体
- パケットタイプ
- IS_MULTICAST関数の操作(送信側はどこか)
無理やりRTSをマルチキャスト→再送回数0→CTS衝突←デュレーションを長く → 通常のマルチキャスト
Copyright(C) by 芝浦工業大学 工学部通信工学科, 森野研究室. All Rights Reserved.