- [`SSL_is_connection`](#-ssl-is-connection-)
- [`SSL_get_stream_type`](#-ssl-get-stream-type-)
- [`SSL_get_stream_id`](#-ssl-get-stream-id-)
+ - [`SSL_is_stream_local`](#-ssl-is-stream-local-)
- [`SSL_new_stream`](#-ssl-new-stream-)
- [`SSL_accept_stream`](#-ssl-accept-stream-)
- [`SSL_get_accept_stream_queue_len`](#-ssl-get-accept-stream-queue-len-)
| Semantics | API | Status |
|-----------|---------------------------------|--------|
-| TBD | `BIO_s_connect` | TODO |
-| TBD | `BIO_set_conn_hostname` | TODO |
-| TBD | `BIO_new_bio_pair` | TODO |
+| Changed | `BIO_s_connect` | Done |
+| Unchanged | `BIO_set_conn_hostname` | Done |
+| N/A | `BIO_new_bio_pair` | N/A (see `BIO_new_bio_dgram_pair`) |
| New | `BIO_s_dgram_pair` | Done |
| Unchanged | `BIO_dgram_get_mtu` | Done |
| Unchanged | `BIO_dgram_set_mtu` | Done |
__owur uint64_t SSL_get_stream_id(SSL *ssl);
```
+#### `SSL_is_stream_local`
+
+| Semantics | `SSL_get_error` | Can Tick? | CSHL |
+| --------- | ------------- | --------- | ------------- |
+| New | Never | No | S |
+
+```c
+/*
+ * QUIC: Returns 1 if the stream was locally initiated, or 0 otherwise.
+ *
+ * TLS, DTLS: Returns -1.
+ */
+__owur int SSL_is_stream_local(SSL *ssl);
+```
+
#### `SSL_new_stream`
| Semantics | `SSL_get_error` | Can Tick? | CSHL |
**Q. How should `STOP_SENDING` be supported?**
-TODO: Determine how `STOP_SENDING` should be supported.
+We trigger `STOP_SENDING` automatically if an application frees the associated
+QUIC stream SSL object.
**Q. Can data be received on a locally initiated bidirectional stream before any
data is sent on that stream?**