Message for Transport-to-Transport Flow control. More...
Data Fields | |
struct GNUNET_MessageHeader | header |
Type is GNUNET_MESSAGE_TYPE_TRANSPORT_FLOW_CONTROL. More... | |
uint32_t | seq |
Sequence number of the flow control message. More... | |
uint64_t | inbound_window_size |
Flow control window size in bytes, in NBO. More... | |
uint64_t | outbound_sent |
How many bytes has the sender sent that count for flow control at this time. More... | |
uint64_t | outbound_window_size |
Latest flow control window size we learned from the other peer, in bytes, in NBO. More... | |
struct GNUNET_TIME_AbsoluteNBO | sender_time |
Timestamp of the sender. More... | |
Message for Transport-to-Transport Flow control.
Specifies the size of the flow control window, including how much we believe to have consumed (at transmission time), how much we believe to be allowed (at transmission time), and how much the other peer is allowed to send to us, and how much data we already received from the other peer.
Definition at line 922 of file gnunet-service-tng.c.
struct GNUNET_MessageHeader TransportFlowControlMessage::header |
Type is GNUNET_MESSAGE_TYPE_TRANSPORT_FLOW_CONTROL.
Definition at line 887 of file gnunet-service-tng.c.
Referenced by consider_sending_fc().
uint32_t TransportFlowControlMessage::seq |
Sequence number of the flow control message.
Incremented by one for each message. Starts at zero when a virtual link goes up. Used to detect one-sided connection drops. On wrap-around, the flow control counters will be reset as if the connection had dropped.
Definition at line 936 of file gnunet-service-tng.c.
Referenced by consider_sending_fc(), and handle_flow_control().
uint64_t TransportFlowControlMessage::inbound_window_size |
Flow control window size in bytes, in NBO.
The receiver can send this many bytes at most.
Definition at line 942 of file gnunet-service-tng.c.
Referenced by consider_sending_fc(), and handle_flow_control().
uint64_t TransportFlowControlMessage::outbound_sent |
How many bytes has the sender sent that count for flow control at this time.
Used to allow the receiver to estimate the packet loss rate.
Definition at line 949 of file gnunet-service-tng.c.
Referenced by consider_sending_fc(), and handle_flow_control().
uint64_t TransportFlowControlMessage::outbound_window_size |
Latest flow control window size we learned from the other peer, in bytes, in NBO.
We are limited to sending at most this many bytes to the other peer. May help the other peer detect when flow control messages were lost and should thus be retransmitted. In particular, if the delta to outbound_sent is too small, this signals that we are stalled.
Definition at line 959 of file gnunet-service-tng.c.
Referenced by consider_sending_fc(), and handle_flow_control().
struct GNUNET_TIME_AbsoluteNBO TransportFlowControlMessage::sender_time |
Timestamp of the sender.
Must be monotonically increasing! Used to enable receiver to ignore out-of-order packets in combination with the seq. Note that seq will go down (back to zero) whenever either side believes the connection was dropped, allowing the peers to detect that they need to reset the counters for the number of bytes sent!
Definition at line 959 of file gnunet-service-tng.c.
Referenced by consider_sending_fc(), and handle_flow_control().