ソフトウェア定義ネットワーク プロジェクトに取り組んでおり、IPv6 UDP パケットの宛先オプション ヘッダーにデータ タグを挿入したいと考えています。私は少しつまずいていて、最終的に Twisted 14.0 を調べました。これにはいくつかのピースがあるようですが、それらをまとめる方法がわかりません。(私は Python の初心者であり、Twisted の初心者なので、混乱させて申し訳ありません。)
関数「send1msg」と「recv1msg」のペアがあることがわかります。これらは、C 呼び出し sendmsg() と recvmsg() の機能の「一部」のラッパーであるはずです。ドキュメントを読むと、次の 3 つの疑問が残ります。
1) 送信の場合、フォーマットは num_bytes_sent = send1msg(filedescriptor、data、flags、ancillary) を示します。補助データはタプル (cmsg_level、cmsg_type、data) のようです。それは明らかですが、私が見ていないのは、補助データが宛先オプション フィールドであることを識別する方法です。通常は setsockopt() を介して行われますが、Twisted でそれを行う方法がわかりません。補助データは、技術的にはヘッダーの任意のフィールドにある可能性があります。
2) 受信の場合も同様: data, flags, ancillary = recv1msg(filedescriptor, size) 宛先オプションを受信するソケット オプションを設定するにはどうすればよいですか? さらに言えば、DatagramProtocol プロトコル オブジェクトを取得した場合、そこからファイル記述子を読み取るにはどうすればよいでしょうか。self.fileno() と言えますか?
3) コード例は AF_UNIX ソケットのみを示しています。これは UDP でもサポートされていますか?