2020-06-15 tcprivはkernel5系に合わせるコードにする

  • 今日はtcprivのpernet_subsysを実装している
  • ubuntu 18.04、すなわちカーネル4系に合わしてコードを書いていたけど、このソフトウェアが日の目を見る先を考えるとさっさと5系対応にしておいたほうが良いと考えた
    • tcp_seq_startとかnext使いたいし
  • ということでubuntu 18.04から20.04のvirtualboxにvagrantを変更中
    • シュッとできるかな
    • buildはちょっとしたwarningとerrorを直したら普通に通った
  • pernet_subsys+tcp_seq_show周りは実装できて、AF_INETなパケットのチェーンを/proc/net/tcprivのopen時に終えるようにできた
  • あとは、そこでsk-> sk_user_dataにtcprivのオーナ情報などをいれておいて同様にoutputできるようにしたい
  • kmalloc系で領域確保すれば良いが、この構造体をどのタイミングでfreeすべきかについてコードを読んでいく
    • それか、静的に持たせるか(サイズは変わらないので静的に持たせたいが、カーネル内でのstack or heapの関係とコールバックの兼ね合いについて理解しきれてないのでさらにコードを読む
    • むー、netfilterのlocal_inフックの段階ではstruct sockがまだ作られていないので、struct sockのuser_dataは使えないなぁ、さて....
  • 今日はそんな感じでnetfilterのフックのタイミングとその時に持てる構造体、構造体に入るデータはなにかといったところについてコードを読んだり、書いて試してトライアンドエラーをしていた


  • こういうトライアンドエラーは楽しい
  • 明日もしっかりコードを読みながらやっていきたい

  • 明後日にはポケモンのエキスパンションパックが始まるので楽しみ

  • アキラとかジョーカーのUHDもみたいな
  • ビリオンズの新しいのもNetflixに降ってきたので見なくては

  • 今日はさくらインターネットの全体会議があって、これからのやっていきが高まった!
  • やっていくぞ