TCPヘッダーを作って送信する事について書いたので、今度は受信でも…と思いきや、受信は思いのほか簡単だった。
/net/ipv4/tcp_input.c中のtcp_parse_options()に、オプションごとの処理がswitch文で書かれているので、そこにオレオレTCPオプションを処理するコードを追加すればいいだけ。
注意する点としては、送信の時とは違って、ヘッダーの中を1バイトずつ舐めているのを気に留めておけばOK。
解析した結果は、tcp_options_received構造体の中に保存して、他所で使いまわしましょう。