[tls] Allow transmitted records to be scheduled independently

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2012-03-03 22:15:25 +00:00
parent b7f8d1bbfd
commit 56a7981d58
2 changed files with 39 additions and 93 deletions

View File

@@ -84,14 +84,12 @@ enum tls_rx_state {
TLS_RX_DATA,
};
/** TLS TX state machine state */
enum tls_tx_state {
TLS_TX_NONE = 0,
TLS_TX_CLIENT_HELLO,
TLS_TX_CLIENT_KEY_EXCHANGE,
TLS_TX_CHANGE_CIPHER,
TLS_TX_FINISHED,
TLS_TX_DATA
/** TLS TX pending flags */
enum tls_tx_pending {
TLS_TX_CLIENT_HELLO = 0x0001,
TLS_TX_CLIENT_KEY_EXCHANGE = 0x0002,
TLS_TX_CHANGE_CIPHER = 0x0004,
TLS_TX_FINISHED = 0x0008,
};
/** A TLS cipher specification */
@@ -172,10 +170,12 @@ struct tls_session {
/** TX sequence number */
uint64_t tx_seq;
/** TX state */
enum tls_tx_state tx_state;
/** TX pending transmissions */
unsigned int tx_pending;
/** TX process */
struct process process;
/** TX ready for plaintext data */
int tx_ready;
/** RX sequence number */
uint64_t rx_seq;