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... | |
struct GNUNET_TIME_RelativeNBO | rtt |
Average RTT for the DistanceVector of the VirtualLink we tell the target. More... | |
unsigned int | sync_ready |
We tell the target, if we are ready to start the burst. More... | |
unsigned int | number_of_addresses |
Number of TransportGlobalNattedAddress following the struct. More... | |
size_t | size_of_addresses |
Size of all the addresses attached to all TransportGlobalNattedAddress. 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 944 of file gnunet-service-transport.c.
struct GNUNET_MessageHeader TransportFlowControlMessage::header |
Type is GNUNET_MESSAGE_TYPE_TRANSPORT_FLOW_CONTROL.
Definition at line 949 of file gnunet-service-transport.c.
Referenced by check_flow_control(), and 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 958 of file gnunet-service-transport.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 964 of file gnunet-service-transport.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 971 of file gnunet-service-transport.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 981 of file gnunet-service-transport.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 991 of file gnunet-service-transport.c.
Referenced by consider_sending_fc(), and handle_flow_control().
struct GNUNET_TIME_RelativeNBO TransportFlowControlMessage::rtt |
Average RTT for the DistanceVector of the VirtualLink we tell the target.
Definition at line 996 of file gnunet-service-transport.c.
Referenced by consider_sending_fc(), and handle_flow_control().
unsigned int TransportFlowControlMessage::sync_ready |
We tell the target, if we are ready to start the burst.
Definition at line 1001 of file gnunet-service-transport.c.
Referenced by consider_sending_fc(), and handle_flow_control().
unsigned int TransportFlowControlMessage::number_of_addresses |
Number of TransportGlobalNattedAddress following the struct.
Definition at line 1006 of file gnunet-service-transport.c.
Referenced by check_flow_control(), consider_sending_fc(), and handle_flow_control().
size_t TransportFlowControlMessage::size_of_addresses |
Size of all the addresses attached to all TransportGlobalNattedAddress.
Definition at line 1011 of file gnunet-service-transport.c.
Referenced by check_flow_control(), and consider_sending_fc().