!ログ *printk printk(KERN_INFO "") *dmesgコマンド //一覧 dmesg //出力後、ログ削除 sudo dmesg -c !メイン処理系 *ieee80211_debug.c **main.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_ioctl.c ** !通信中 :通信時に呼ばれるもの: ,関数名,タイミング,格納デバイス,備考 ,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,,パケット落ちを判定できるかも? :ログとして使えるパラメータ: *net_device_stats構造体の中身 ,変数名,型,備考 ,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,エラー数(パケ落ち数?未検証) *ieee80211_stats構造体の中身 ,変数名,型,備考 ,is_rx_mgtdiscard,unsigned long int,パケ落ち数?(未検証) :マルチキャスト関連: *関係ありそうな関数・パラメータ・ファイル **IEEE80211_IS_MULTICAST : アドレスを引数にして判定 **IEEE80211_M_STA : **PACKET_MULTICAST : **ieee80211.h : パケットのフレームなどの定義。rts/ctsのフレームもここ。 **ath_hal_setuptxdesc : rts/cts dulation *IFF_MULTICASTがある場所 **ieee80211_input.c *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 *multicastっぽいところ 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; } } !!MAC *ieee80211_input.c **IEEE80211_NOTE_MAC() !!パケット ,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内で他で参照されていない模様 !!action *パケットのアドレス構造体 *パケットタイプ *IS_MULTICAST関数の操作(送信側はどこか) !!purpose 無理やりRTSをマルチキャスト→再送回数0→CTS衝突←デュレーションを長く → 通常のマルチキャスト !!その他 *ieee80211_linux.c **vlan