| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.posix.socket.packet |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| |
| |
| ## **PROTOCOLS** |
| |
| ## Provider {#Provider} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=223)* |
| <p>A packet socket provider.</p> |
| |
| |
| ### Socket {#Provider.Socket} |
| |
| <p>Requests a packet socket.</p> |
| <ul> |
| <li>request <code>kind</code> the kind of packet socket to create.</li> |
| </ul> |
| <ul> |
| <li>response <code>socket</code> the packet socket.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Provider.Socket_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>kind</code></td> |
| <td> |
| <code><a class='link' href='#Kind'>Kind</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Provider.Socket_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Provider_Socket_Result'>Provider_Socket_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Socket {#Socket} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=136)* |
| <p>A packet socket.</p> |
| <p>This interface is essentially POSIX.</p> |
| <p>All methods on this type are nonblocking; their exact behaviors match their |
| Linux counterparts.</p> |
| <p><em>Warning:</em> This protocol is not yet ready for direct use by clients. |
| Instead, clients should use the BSD sockets API to interact with sockets. |
| We plan to change this protocol substantially and clients that couple |
| directly to this protocol will make those changes more difficult.</p> |
| |
| |
| ### Bind {#Socket.Bind} |
| |
| <p>Bind the socket to a protocol and/or interface.</p> |
| <ul> |
| <li>request <code>protocol</code> the socket's new protocol association.</li> |
| <li>request <code>bound_interface_id</code> the socket's new interface binding.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Socket.Bind_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#ProtocolAssociation'>ProtocolAssociation</a>?</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>bound_interface_id</code></td> |
| <td> |
| <code><a class='link' href='#BoundInterfaceId'>BoundInterfaceId</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.Bind_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Socket_Bind_Result'>Socket_Bind_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Clone2 {#Socket.Clone2} |
| |
| |
| |
| |
| #### Request {#Socket.Clone2_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>request</code></td> |
| <td> |
| <code>server_end<<a class='link' href='../fuchsia.unknown/'>fuchsia.unknown</a>/<a class='link' href='../fuchsia.unknown/#Cloneable'>Cloneable</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### Close {#Socket.Close} |
| |
| <p>Terminates the connection.</p> |
| <p>After calling <code>Close</code>, the client must not send any other requests.</p> |
| <p>Servers, after sending the status response, should close the connection |
| regardless of status and without sending an epitaph.</p> |
| <p>Closing the client end of the channel should be semantically equivalent |
| to calling <code>Close</code> without knowing when the close has completed or its |
| status.</p> |
| |
| |
| |
| #### Request {#Socket.Close_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.Close_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.unknown/'>fuchsia.unknown</a>/<a class='link' href='../fuchsia.unknown/#Closeable_Close_Result'>Closeable_Close_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Describe {#Socket.Describe} |
| |
| |
| |
| |
| #### Request {#Socket.Describe_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.Describe_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>payload</code></td> |
| <td> |
| <code><a class='link' href='#SocketDescribeResponse'>SocketDescribeResponse</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetAcceptConn {#Socket.GetAcceptConn} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_ACCEPTCONN</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetAcceptConn_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetAcceptConn_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetAcceptConn_Result'>BaseSocket_GetAcceptConn_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetBindToDevice {#Socket.GetBindToDevice} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_BINDTODEVICE</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetBindToDevice_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetBindToDevice_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetBindToDevice_Result'>BaseSocket_GetBindToDevice_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetBroadcast {#Socket.GetBroadcast} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_BROADCAST</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetBroadcast_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetBroadcast_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetBroadcast_Result'>BaseSocket_GetBroadcast_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetError {#Socket.GetError} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_ERROR</code>. |
| Returns the last error if there is an error set on the socket.</p> |
| |
| |
| |
| #### Request {#Socket.GetError_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetError_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetError_Result'>BaseSocket_GetError_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetInfo {#Socket.GetInfo} |
| |
| <p>Returns the the socket's properties.</p> |
| <ul> |
| <li>response <code>kind</code> the socket's <code>Kind</code>.</li> |
| <li>response <code>protocol</code> the socket's protocol association, if associated.</li> |
| <li>response <code>bound_interface</code> properties of the socket's interface |
| binding.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Socket.GetInfo_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetInfo_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Socket_GetInfo_Result'>Socket_GetInfo_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetKeepAlive {#Socket.GetKeepAlive} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_KEEPALIVE</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetKeepAlive_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetKeepAlive_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetKeepAlive_Result'>BaseSocket_GetKeepAlive_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetLinger {#Socket.GetLinger} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_LINGER</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetLinger_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetLinger_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetLinger_Result'>BaseSocket_GetLinger_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetNoCheck {#Socket.GetNoCheck} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_NO_CHECK</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetNoCheck_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetNoCheck_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetNoCheck_Result'>BaseSocket_GetNoCheck_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetOutOfBandInline {#Socket.GetOutOfBandInline} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_OOBINLINE</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetOutOfBandInline_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetOutOfBandInline_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetOutOfBandInline_Result'>BaseSocket_GetOutOfBandInline_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetReceiveBuffer {#Socket.GetReceiveBuffer} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_RCVBUF</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetReceiveBuffer_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetReceiveBuffer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetReceiveBuffer_Result'>BaseSocket_GetReceiveBuffer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetReuseAddress {#Socket.GetReuseAddress} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_REUSEADDR</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetReuseAddress_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetReuseAddress_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetReuseAddress_Result'>BaseSocket_GetReuseAddress_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetReusePort {#Socket.GetReusePort} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_REUSEPORT</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetReusePort_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetReusePort_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetReusePort_Result'>BaseSocket_GetReusePort_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetSendBuffer {#Socket.GetSendBuffer} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_SNDBUF</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetSendBuffer_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetSendBuffer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetSendBuffer_Result'>BaseSocket_GetSendBuffer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### GetTimestamp {#Socket.GetTimestamp} |
| |
| <p>Get <code>SOL_SOCKET</code> -> <code>SO_TIMESTAMP</code> or <code>SO_TIMESTAMPNS</code>.</p> |
| |
| |
| |
| #### Request {#Socket.GetTimestamp_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.GetTimestamp_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_GetTimestamp_Result'>BaseSocket_GetTimestamp_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Query {#Socket.Query} |
| |
| |
| |
| |
| #### Request {#Socket.Query_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#Socket.Query_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>protocol</code></td> |
| <td> |
| <code>vector<uint8></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### RecvMsg {#Socket.RecvMsg} |
| |
| <p>Receives a message from the socket.</p> |
| <ul> |
| <li>request <code>want_packet_info</code> request information about the packet to be |
| returned.</li> |
| <li>request <code>data_len</code> the maximum allowed length of the response data |
| buffer.</li> |
| <li>request <code>want_control</code> request ancillary data to be returned.</li> |
| <li>request <code>flags</code> flags for the receive request.</li> |
| </ul> |
| <ul> |
| <li>response <code>packet_info</code> information about the packet, if requested.</li> |
| <li>response <code>data</code> the message.</li> |
| <li>response <code>control</code> control messages, if requested.</li> |
| <li>response <code>truncated</code> indicates whether or not the returned message |
| was truncated.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Socket.RecvMsg_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>want_packet_info</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>data_len</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>want_control</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>flags</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#RecvMsgFlags'>RecvMsgFlags</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.RecvMsg_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Socket_RecvMsg_Result'>Socket_RecvMsg_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SendMsg {#Socket.SendMsg} |
| |
| <p>Sends a message on the socket.</p> |
| <ul> |
| <li>request <code>packet_info</code> information about the packet.</li> |
| <li>request <code>data</code> the message.</li> |
| <li>request <code>control</code> ancillary data.</li> |
| <li>request <code>flags</code> flags for the send request.</li> |
| </ul> |
| |
| |
| |
| #### Request {#Socket.SendMsg_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>packet_info</code></td> |
| <td> |
| <code><a class='link' href='#PacketInfo'>PacketInfo</a>?</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>data</code></td> |
| <td> |
| <code>vector<uint8></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>control</code></td> |
| <td> |
| <code><a class='link' href='#SendControlData'>SendControlData</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>flags</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#SendMsgFlags'>SendMsgFlags</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SendMsg_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#Socket_SendMsg_Result'>Socket_SendMsg_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetBindToDevice {#Socket.SetBindToDevice} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_BINDTODEVICE</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetBindToDevice_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net.interfaces/'>fuchsia.net.interfaces</a>/<a class='link' href='../fuchsia.net.interfaces/#Name'>Name</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetBindToDevice_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetBindToDevice_Result'>BaseSocket_SetBindToDevice_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetBroadcast {#Socket.SetBroadcast} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_BROADCAST</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetBroadcast_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetBroadcast_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetBroadcast_Result'>BaseSocket_SetBroadcast_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetKeepAlive {#Socket.SetKeepAlive} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_KEEPALIVE</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetKeepAlive_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetKeepAlive_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetKeepAlive_Result'>BaseSocket_SetKeepAlive_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetLinger {#Socket.SetLinger} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_LINGER</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetLinger_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>linger</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>length_secs</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetLinger_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetLinger_Result'>BaseSocket_SetLinger_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetNoCheck {#Socket.SetNoCheck} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_NO_CHECK</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetNoCheck_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetNoCheck_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetNoCheck_Result'>BaseSocket_SetNoCheck_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetOutOfBandInline {#Socket.SetOutOfBandInline} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_OOBINLINE</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetOutOfBandInline_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetOutOfBandInline_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetOutOfBandInline_Result'>BaseSocket_SetOutOfBandInline_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetReceiveBuffer {#Socket.SetReceiveBuffer} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_RCVBUF</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetReceiveBuffer_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value_bytes</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetReceiveBuffer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetReceiveBuffer_Result'>BaseSocket_SetReceiveBuffer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetReuseAddress {#Socket.SetReuseAddress} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_REUSEADDR</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetReuseAddress_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetReuseAddress_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetReuseAddress_Result'>BaseSocket_SetReuseAddress_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetReusePort {#Socket.SetReusePort} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_REUSEPORT</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetReusePort_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetReusePort_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetReusePort_Result'>BaseSocket_SetReusePort_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetSendBuffer {#Socket.SetSendBuffer} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_SNDBUF</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetSendBuffer_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value_bytes</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetSendBuffer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetSendBuffer_Result'>BaseSocket_SetSendBuffer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### SetTimestamp {#Socket.SetTimestamp} |
| |
| <p>Set <code>SOL_SOCKET</code> -> <code>SO_TIMESTAMP</code> or <code>SO_TIMESTAMPNS</code>.</p> |
| |
| |
| |
| #### Request {#Socket.SetTimestamp_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>value</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#TimestampOption'>TimestampOption</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#Socket.SetTimestamp_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#BaseSocket_SetTimestamp_Result'>BaseSocket_SetTimestamp_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **STRUCTS** |
| |
| ### Empty {#Empty data-text="Empty"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=12)* |
| |
| <EMPTY> |
| |
| ### InterfaceProperties {#InterfaceProperties data-text="InterfaceProperties"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=103)* |
| <p>An interface's properties.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="InterfaceProperties.id"> |
| <td><code>id</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#InterfaceId'>InterfaceId</a></code> |
| </td> |
| <td><p>The interface's ID.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="InterfaceProperties.addr"> |
| <td><code>addr</code></td> |
| <td> |
| <code><a class='link' href='#HardwareAddress'>HardwareAddress</a></code> |
| </td> |
| <td><p>The interface's hardware address.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="InterfaceProperties.type"> |
| <td><code>type</code></td> |
| <td> |
| <code><a class='link' href='#HardwareType'>HardwareType</a></code> |
| </td> |
| <td><p>The interface's hardware type.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### PacketInfo {#PacketInfo data-text="PacketInfo"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=115)* |
| <p>Information about a packet.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="PacketInfo.protocol"> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#Protocol'>Protocol</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PacketInfo.interface_id"> |
| <td><code>interface_id</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#InterfaceId'>InterfaceId</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PacketInfo.addr"> |
| <td><code>addr</code></td> |
| <td> |
| <code><a class='link' href='#HardwareAddress'>HardwareAddress</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Provider_Socket_Response [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#Provider_Socket_Response data-text="Provider_Socket_Response"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=230)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Provider_Socket_Response.socket"> |
| <td><code>socket</code></td> |
| <td> |
| <code><a class='link' href='#Socket'>Socket</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### RecvPacketInfo {#RecvPacketInfo data-text="RecvPacketInfo"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=191)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="RecvPacketInfo.packet_info"> |
| <td><code>packet_info</code></td> |
| <td> |
| <code><a class='link' href='#PacketInfo'>PacketInfo</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="RecvPacketInfo.packet_type"> |
| <td><code>packet_type</code></td> |
| <td> |
| <code><a class='link' href='#PacketType'>PacketType</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="RecvPacketInfo.interface_type"> |
| <td><code>interface_type</code></td> |
| <td> |
| <code><a class='link' href='#HardwareType'>HardwareType</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Socket_Bind_Response {#Socket_Bind_Response data-text="Socket_Bind_Response"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=155)* |
| |
| <EMPTY> |
| |
| ### Socket_GetInfo_Response {#Socket_GetInfo_Response data-text="Socket_GetInfo_Response"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=163)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Socket_GetInfo_Response.kind"> |
| <td><code>kind</code></td> |
| <td> |
| <code><a class='link' href='#Kind'>Kind</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Socket_GetInfo_Response.protocol"> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#ProtocolAssociation'>ProtocolAssociation</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Socket_GetInfo_Response.bound_interface"> |
| <td><code>bound_interface</code></td> |
| <td> |
| <code><a class='link' href='#BoundInterface'>BoundInterface</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Socket_RecvMsg_Response {#Socket_RecvMsg_Response data-text="Socket_RecvMsg_Response"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=190)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Socket_RecvMsg_Response.packet_info"> |
| <td><code>packet_info</code></td> |
| <td> |
| <code><a class='link' href='#RecvPacketInfo'>RecvPacketInfo</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Socket_RecvMsg_Response.data"> |
| <td><code>data</code></td> |
| <td> |
| <code>vector<uint8></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Socket_RecvMsg_Response.control"> |
| <td><code>control</code></td> |
| <td> |
| <code><a class='link' href='#RecvControlData'>RecvControlData</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="Socket_RecvMsg_Response.truncated"> |
| <td><code>truncated</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Socket_SendMsg_Response {#Socket_SendMsg_Response data-text="Socket_SendMsg_Response"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=218)* |
| |
| <EMPTY> |
| |
| |
| ## **ENUMS** |
| |
| ### HardwareType [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#HardwareType data-text="HardwareType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=48)* |
| <p>The type of a hardware.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="HardwareType.NETWORK_ONLY"> |
| <td><h3 id="HardwareType.NETWORK_ONLY" class="add-link hide-from-toc">NETWORK_ONLY</h3></td> |
| <td><code>1</code></td> |
| <td><p>Hardware that operates only at the network layer; a pure L3 interface.</p> |
| <p>Hardware of this type have no L2 headers/addressing.</p> |
| </td> |
| </tr> |
| <tr id="HardwareType.ETHERNET"> |
| <td><h3 id="HardwareType.ETHERNET" class="add-link hide-from-toc">ETHERNET</h3></td> |
| <td><code>2</code></td> |
| <td><p>Hardware that operates on ethernet-based links.</p> |
| </td> |
| </tr> |
| <tr id="HardwareType.LOOPBACK"> |
| <td><h3 id="HardwareType.LOOPBACK" class="add-link hide-from-toc">LOOPBACK</h3></td> |
| <td><code>3</code></td> |
| <td><p>Hardware that loops back packets.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Kind [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Kind data-text="Kind"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=15)* |
| <p>A kind of packet socket.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="Kind.NETWORK"> |
| <td><h3 id="Kind.NETWORK" class="add-link hide-from-toc">NETWORK</h3></td> |
| <td><code>1</code></td> |
| <td><p>A packet socket that operates with network-layer packets.</p> |
| </td> |
| </tr> |
| <tr id="Kind.LINK"> |
| <td><h3 id="Kind.LINK" class="add-link hide-from-toc">LINK</h3></td> |
| <td><code>2</code></td> |
| <td><p>A packet socket that operates with link-layer packets.</p> |
| <p>Packets are passed unmodified between the wire and client when the |
| packet socket is of this kind.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### PacketType [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#PacketType data-text="PacketType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=67)* |
| <p>The type of a packet.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="PacketType.HOST"> |
| <td><h3 id="PacketType.HOST" class="add-link hide-from-toc">HOST</h3></td> |
| <td><code>1</code></td> |
| <td><p>A packet that arrived at its destination.</p> |
| </td> |
| </tr> |
| <tr id="PacketType.BROADCAST"> |
| <td><h3 id="PacketType.BROADCAST" class="add-link hide-from-toc">BROADCAST</h3></td> |
| <td><code>2</code></td> |
| <td><p>A packet that was broadcasted.</p> |
| </td> |
| </tr> |
| <tr id="PacketType.MULTICAST"> |
| <td><h3 id="PacketType.MULTICAST" class="add-link hide-from-toc">MULTICAST</h3></td> |
| <td><code>3</code></td> |
| <td><p>A packet that was multicasted.</p> |
| </td> |
| </tr> |
| <tr id="PacketType.OTHER_HOST"> |
| <td><h3 id="PacketType.OTHER_HOST" class="add-link hide-from-toc">OTHER_HOST</h3></td> |
| <td><code>4</code></td> |
| <td><p>A packet that arrived at a host that isn't its destination.</p> |
| </td> |
| </tr> |
| <tr id="PacketType.OUTGOING"> |
| <td><h3 id="PacketType.OUTGOING" class="add-link hide-from-toc">OUTGOING</h3></td> |
| <td><code>5</code></td> |
| <td><p>A packet that is being sent on a local interface, regardless of how it |
| is being sent (unicasted, multicasted, broadcasted).</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### RecvControlData {#RecvControlData data-text="RecvControlData"} |
| |
| |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=197)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="RecvControlData.socket"> |
| <td><h3 id="RecvControlData.socket" class="add-link hide-from-toc">1</h3></td> |
| <td><code>socket</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#SocketRecvControlData'>SocketRecvControlData</a></code> |
| </td> |
| <td><p>Socket level ancillary data.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### SendControlData {#SendControlData data-text="SendControlData"} |
| |
| |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=213)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="SendControlData.socket"> |
| <td><h3 id="SendControlData.socket" class="add-link hide-from-toc">1</h3></td> |
| <td><code>socket</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix.socket/'>fuchsia.posix.socket</a>/<a class='link' href='../fuchsia.posix.socket/#SocketSendControlData'>SocketSendControlData</a></code> |
| </td> |
| <td><p>Socket level ancillary data.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### SocketDescribeResponse [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#SocketDescribeResponse data-text="SocketDescribeResponse"} |
| |
| |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=139)* |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="SocketDescribeResponse.event"> |
| <td><h3 id="SocketDescribeResponse.event" class="add-link hide-from-toc">1</h3></td> |
| <td><code>event</code></td> |
| <td> |
| <code>handle<eventpair></code> |
| </td> |
| <td><p>Signals additional information about the state of the socket such as |
| readiness or shutdown-ness.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **UNIONS** |
| |
| ### BoundInterface [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#BoundInterface data-text="BoundInterface"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=166)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="BoundInterface.all"> |
| <td><h3 id="BoundInterface.all" class="add-link hide-from-toc">1</h3></td> |
| <td><code>all</code></td> |
| <td> |
| <code><a class='link' href='#Empty'>Empty</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="BoundInterface.specified"> |
| <td><h3 id="BoundInterface.specified" class="add-link hide-from-toc">2</h3></td> |
| <td><code>specified</code></td> |
| <td> |
| <code><a class='link' href='#InterfaceProperties'>InterfaceProperties</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### BoundInterfaceId [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#BoundInterfaceId data-text="BoundInterfaceId"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=151)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="BoundInterfaceId.all"> |
| <td><h3 id="BoundInterfaceId.all" class="add-link hide-from-toc">1</h3></td> |
| <td><code>all</code></td> |
| <td> |
| <code><a class='link' href='#Empty'>Empty</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="BoundInterfaceId.specified"> |
| <td><h3 id="BoundInterfaceId.specified" class="add-link hide-from-toc">2</h3></td> |
| <td><code>specified</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#InterfaceId'>InterfaceId</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### HardwareAddress [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#HardwareAddress data-text="HardwareAddress"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=92)* |
| <p>A hardware address.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="HardwareAddress.none"> |
| <td><h3 id="HardwareAddress.none" class="add-link hide-from-toc">1</h3></td> |
| <td><code>none</code></td> |
| <td> |
| <code><a class='link' href='#Empty'>Empty</a></code> |
| </td> |
| <td><p>Indicates that the hardware does not support link-layer addressing.</p> |
| </td> |
| </tr> |
| <tr id="HardwareAddress.eui48"> |
| <td><h3 id="HardwareAddress.eui48" class="add-link hide-from-toc">2</h3></td> |
| <td><code>eui48</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.net/'>fuchsia.net</a>/<a class='link' href='../fuchsia.net/#MacAddress'>MacAddress</a></code> |
| </td> |
| <td><p>An EUI-48 based address.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### ProtocolAssociation [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ProtocolAssociation data-text="ProtocolAssociation"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=37)* |
| <p>The protocol association for a packet socket.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="ProtocolAssociation.all"> |
| <td><h3 id="ProtocolAssociation.all" class="add-link hide-from-toc">1</h3></td> |
| <td><code>all</code></td> |
| <td> |
| <code><a class='link' href='#Empty'>Empty</a></code> |
| </td> |
| <td><p>An association with all protocols.</p> |
| </td> |
| </tr> |
| <tr id="ProtocolAssociation.specified"> |
| <td><h3 id="ProtocolAssociation.specified" class="add-link hide-from-toc">2</h3></td> |
| <td><code>specified</code></td> |
| <td> |
| <code><a class='link' href='#Protocol'>Protocol</a></code> |
| </td> |
| <td><p>An association with a protocol.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Provider_Socket_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#Provider_Socket_Result data-text="Provider_Socket_Result"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=230)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Provider_Socket_Result.response"> |
| <td><h3 id="Provider_Socket_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Provider_Socket_Response'>Provider_Socket_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Provider_Socket_Result.err"> |
| <td><h3 id="Provider_Socket_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix/'>fuchsia.posix</a>/<a class='link' href='../fuchsia.posix/#Errno'>Errno</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Socket_Bind_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Socket_Bind_Result data-text="Socket_Bind_Result"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=155)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Socket_Bind_Result.response"> |
| <td><h3 id="Socket_Bind_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Socket_Bind_Response'>Socket_Bind_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Socket_Bind_Result.err"> |
| <td><h3 id="Socket_Bind_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix/'>fuchsia.posix</a>/<a class='link' href='../fuchsia.posix/#Errno'>Errno</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Socket_GetInfo_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Socket_GetInfo_Result data-text="Socket_GetInfo_Result"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=163)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Socket_GetInfo_Result.response"> |
| <td><h3 id="Socket_GetInfo_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Socket_GetInfo_Response'>Socket_GetInfo_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Socket_GetInfo_Result.err"> |
| <td><h3 id="Socket_GetInfo_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix/'>fuchsia.posix</a>/<a class='link' href='../fuchsia.posix/#Errno'>Errno</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Socket_RecvMsg_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Socket_RecvMsg_Result data-text="Socket_RecvMsg_Result"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=190)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Socket_RecvMsg_Result.response"> |
| <td><h3 id="Socket_RecvMsg_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Socket_RecvMsg_Response'>Socket_RecvMsg_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Socket_RecvMsg_Result.err"> |
| <td><h3 id="Socket_RecvMsg_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix/'>fuchsia.posix</a>/<a class='link' href='../fuchsia.posix/#Errno'>Errno</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Socket_SendMsg_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Socket_SendMsg_Result data-text="Socket_SendMsg_Result"} |
| *Defined in [fuchsia.posix.socket.packet/socket.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=218)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Socket_SendMsg_Result.response"> |
| <td><h3 id="Socket_SendMsg_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#Socket_SendMsg_Response'>Socket_SendMsg_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Socket_SendMsg_Result.err"> |
| <td><h3 id="Socket_SendMsg_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.posix/'>fuchsia.posix</a>/<a class='link' href='../fuchsia.posix/#Errno'>Errno</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="SOCKET_PROTOCOL_NAME"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=122">SOCKET_PROTOCOL_NAME</a></td> |
| <td><code>fuchsia.posix.socket.packet/Socket</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ## **ALIASES** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="Protocol"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.posix.socket.packet/socket.fidl;l=34">Protocol</a></td> |
| <td> |
| <code>uint16</code></td> |
| <td><p>A network-layer protocol (above link-layer).</p> |
| <p>Values are defined by |
| https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml.</p> |
| </td> |
| </tr> |
| </table> |