This data structure holds information needed by the
receiver to calculate the window size for a particular connection. It is
kept between packets in a connection, and one is kept for each connection.
It has the following definition:
struct rami_info {
struct rami_info *next;
struct sock *sk;
__u32 previous_win;
int mu;
int prime_start;
unsigned long tstamp;
int timestamps[ALPHA];
int counter;
};
Each field has the following use:
- *next
- A pointer to the next structure of this type within a
list, or NULL if there is no other structure.
- *sk
- A pointer to the local socket structure (as maintained by
the kernel) for the connection.
- previous_win
- The window size used for the previous packet
transmitted for this connection.
- mu
- The value of
as calculated when the previous packet
was received.
- prime_start
- Determines whether or not the prime start phase
of the connection is occurring. This should be initialised to a
non-negative value (such as 1), and changed to 0 when the prime start
phase has ended.
- tstamp
- The value of the kernel jiffies counter at the time the
last packet for this connection was transmitted.
- timestamps
- A list of the last ALPHA timestamps for
packets transmitted for this connection. This is used to determine the
received rate.
- counter
- A counter which keeps a record of the number of
packets transmitted modulus
, which is used to maintain the
list of the
most recent timestamps.