Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_stacks/tcp_bbr.h
Show All 36 Lines | |||||
#define BBR_RXT_CLEARED 0x0004 /* ACK Cleared by the RXT timer */ | #define BBR_RXT_CLEARED 0x0004 /* ACK Cleared by the RXT timer */ | ||||
#define BBR_OVERMAX 0x0008 /* We have more retran's then we can | #define BBR_OVERMAX 0x0008 /* We have more retran's then we can | ||||
* fit */ | * fit */ | ||||
#define BBR_SACK_PASSED 0x0010 /* A sack was done above this block */ | #define BBR_SACK_PASSED 0x0010 /* A sack was done above this block */ | ||||
#define BBR_WAS_SACKPASS 0x0020 /* We retransmitted due to SACK pass */ | #define BBR_WAS_SACKPASS 0x0020 /* We retransmitted due to SACK pass */ | ||||
#define BBR_HAS_FIN 0x0040 /* segment is sent with fin */ | #define BBR_HAS_FIN 0x0040 /* segment is sent with fin */ | ||||
#define BBR_TLP 0x0080 /* segment sent as tail-loss-probe */ | #define BBR_TLP 0x0080 /* segment sent as tail-loss-probe */ | ||||
#define BBR_HAS_SYN 0x0100 /* segment has the syn */ | #define BBR_HAS_SYN 0x0100 /* segment has the syn */ | ||||
#define BBR_MARKED_LOST 0x0200 /* | #define BBR_MARKED_LOST 0x0200 /* | ||||
* This segments is lost and | * This segments is lost and | ||||
* totaled into bbr->rc_ctl.rc_lost | * totaled into bbr->rc_ctl.rc_lost | ||||
*/ | */ | ||||
#define BBR_RWND_COLLAPSED 0x0400 /* The peer collapsed the rwnd on the segment */ | #define BBR_RWND_COLLAPSED 0x0400 /* The peer collapsed the rwnd on the segment */ | ||||
#define BBR_NUM_OF_RETRANS 7 | #define BBR_NUM_OF_RETRANS 7 | ||||
/* Defines for socket options to set pacing overheads */ | /* Defines for socket options to set pacing overheads */ | ||||
#define BBR_INCL_ENET_OH 0x01 | #define BBR_INCL_ENET_OH 0x01 | ||||
#define BBR_INCL_IP_OH 0x02 | #define BBR_INCL_IP_OH 0x02 | ||||
#define BBR_INCL_TCP_OH 0x03 | #define BBR_INCL_TCP_OH 0x03 | ||||
/* | /* | ||||
* With the addition of both measurement algorithms | * With the addition of both measurement algorithms | ||||
* I had to move over the size of a | * I had to move over the size of a | ||||
* cache line (unfortunately). For now there is | * cache line (unfortunately). For now there is | ||||
* no way around this. We may be able to cut back | * no way around this. We may be able to cut back | ||||
* at some point I hope. | * at some point I hope. | ||||
*/ | */ | ||||
struct bbr_sendmap { | struct bbr_sendmap { | ||||
TAILQ_ENTRY(bbr_sendmap) r_next; /* seq number arrayed next */ | TAILQ_ENTRY(bbr_sendmap) r_next; /* seq number arrayed next */ | ||||
TAILQ_ENTRY(bbr_sendmap) r_tnext; /* Time of tmit based next */ | TAILQ_ENTRY(bbr_sendmap) r_tnext; /* Time of tmit based next */ | ||||
uint32_t r_start; /* Sequence number of the segment */ | uint32_t r_start; /* Sequence number of the segment */ | ||||
▲ Show 20 Lines • Show All 154 Lines • ▼ Show 20 Lines | |||||
#define BBR_RT_FLAG_INUSE 0x01 /* Has been allocated */ | #define BBR_RT_FLAG_INUSE 0x01 /* Has been allocated */ | ||||
#define BBR_RT_FLAG_READY 0x02 /* Ready to initiate a measurement. */ | #define BBR_RT_FLAG_READY 0x02 /* Ready to initiate a measurement. */ | ||||
#define BBR_RT_FLAG_CAPPED_PRE 0x04 /* Ready to cap if we send the next segment */ | #define BBR_RT_FLAG_CAPPED_PRE 0x04 /* Ready to cap if we send the next segment */ | ||||
#define BBR_RT_FLAG_CAPPED 0x08 /* Measurement is capped */ | #define BBR_RT_FLAG_CAPPED 0x08 /* Measurement is capped */ | ||||
#define BBR_RT_FLAG_PASTFA 0x10 /* Past the first ack. */ | #define BBR_RT_FLAG_PASTFA 0x10 /* Past the first ack. */ | ||||
#define BBR_RT_FLAG_LIMITED 0x20 /* Saw application/cwnd or rwnd limited period */ | #define BBR_RT_FLAG_LIMITED 0x20 /* Saw application/cwnd or rwnd limited period */ | ||||
#define BBR_RT_SEEN_A_ACK 0x40 /* A ack has been saved */ | #define BBR_RT_SEEN_A_ACK 0x40 /* A ack has been saved */ | ||||
#define BBR_RT_PREV_RTT_SET 0x80 /* There was a RTT set in */ | #define BBR_RT_PREV_RTT_SET 0x80 /* There was a RTT set in */ | ||||
#define BBR_RT_PREV_SEND_TIME 0x100 /* | #define BBR_RT_PREV_SEND_TIME 0x100 /* | ||||
*There was a RTT send time set that can be used | *There was a RTT send time set that can be used | ||||
* no snd_limits | * no snd_limits | ||||
*/ | */ | ||||
#define BBR_RT_SET_GRADIENT 0x200 | #define BBR_RT_SET_GRADIENT 0x200 | ||||
#define BBR_RT_TS_VALID 0x400 | #define BBR_RT_TS_VALID 0x400 | ||||
struct bbr_log { | struct bbr_log { | ||||
union { | union { | ||||
▲ Show 20 Lines • Show All 366 Lines • ▼ Show 20 Lines | struct bbr_sendmap *rc_next; /* remembered place where we next | ||||
* retransmit at Lock(a) */ | * retransmit at Lock(a) */ | ||||
uint32_t rc_sacked; /* Tot sacked on scoreboard Lock(a) */ | uint32_t rc_sacked; /* Tot sacked on scoreboard Lock(a) */ | ||||
uint32_t rc_holes_rxt; /* Tot retraned from scoreboard Lock(a) */ | uint32_t rc_holes_rxt; /* Tot retraned from scoreboard Lock(a) */ | ||||
uint32_t rc_reorder_ts; /* Last time we saw reordering Lock(a) */ | uint32_t rc_reorder_ts; /* Last time we saw reordering Lock(a) */ | ||||
uint32_t rc_init_rwnd; /* Initial rwnd when we transitioned */ | uint32_t rc_init_rwnd; /* Initial rwnd when we transitioned */ | ||||
/*- --- | /*- --- | ||||
* used only inital and close | * used only inital and close | ||||
*/ | */ | ||||
uint32_t rc_high_rwnd; /* Highest rwnd seen */ | uint32_t rc_high_rwnd; /* Highest rwnd seen */ | ||||
uint32_t rc_lowest_rtt; /* Smallest RTT we have seen */ | uint32_t rc_lowest_rtt; /* Smallest RTT we have seen */ | ||||
uint32_t rc_last_rtt; /* Last valid measured RTT that ack'd data */ | uint32_t rc_last_rtt; /* Last valid measured RTT that ack'd data */ | ||||
uint32_t bbr_cross_over; | uint32_t bbr_cross_over; | ||||
/*******************************/ | /*******************************/ | ||||
▲ Show 20 Lines • Show All 223 Lines • Show Last 20 Lines |