操作関数群

  • alloc_skb()
    • 指定されたサイズのパケットを確保
  • kfree_skb()
    • 指定されたパケットを解放
  • skb_put()
    • パケット内のtailポインタを進め、その分サイズ(len)を増やす
  • skb_pull()
    • パケット内のlenを減らし、その分dataポインタを進める。
  • skb_push()
    • skb_pull()の逆。dataポインタを戻し、その分lenを増やす
  • skb_trim()
    • パケットのデータ長を指定された長さに切り詰める
  • skb_reserve()
    • パケット内のポインタ(data,tail)を進める. パケット内に、後の処理で必要になるヘッダ格納用の領域を 予約して置くことに利用される。
  • skb_copy()
    • パケット(sk_buff)全体の複製を作る。
  • skb_clone()
    • パケットのヘッダだけコピーし、データ本体は共有する。
  • skb_cow()
    • 必要があれば (新たに要求されたヘッダ領域が不足するとき、クローンの場合) パケット領域を取り直しデータをコピー、古いものは捨てる。
  • skb_tailroom()
    • パケットのデータ域に空きがあるか?チェック。
  • skb_headroom()
    • ヘッダ域にの先頭に空きがあるか?チェック。
  • skb_peek(), skb_peektail()
    • キューから外さず、つながっているパケット(sk_buff)を参照する
  • skb_orphan()
    • ソケットのリンクを切る。
  • dev_alloc_skb()
    • パケット(sk_buff)を確保し、16byte余分の領域 (デバイスドライバ用のヘッダ用など) を確保し予約する。
  • dev_kfree_skb()
    • パケット(sk_buff)を解放する。

(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST
1