Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#ifndef NETINET_IL_VAR_H_
#define NETINET_IL_VAR_H_

struct ilpcb                    /* Control block */
{
  int   state;          /* Connection state */
  struct inpcb * inpcb;  /* back pointer to internet pcb */
  u_long unacked;

#define ILF_NEEDACK 1
  u_long flags;

  u_long rxt_max;
  int rxt_timer;  /* number of ticks to the next timeout */
  int rxt_timer_cur;  /* current rxt timer period */

  int death_timer;
  int death_timer_cur;
  
  u_long        next;           /* Id of next to send */
  u_long        recvd;          /* Last packet received */
  
  u_long        start;          /* Local start id */
  u_long        rstart;         /* Remote start id */
  int   rxtot;          /* number of retransmits on this connection */

  struct mbuf * segq;
};

#define intoilpcb(ip)   ((struct ilpcb *)(ip)->inp_ppcb)
#define sotoilpcb(so)   (intoilpcb(sotoinpcb(so)))

#ifdef KERNEL
void il_init __P((void));
void il_input __P((struct mbuf * m, int iphlen));
void il_slowtimo __P((void));
void il_fasttimo __P((void));
void il_ctlinput __P((int cmd, struct sockaddr *sa, void *vip));
int  il_ctloutput __P((struct socket *so, struct sockopt *sopt));
void il_drain __P((void));

extern struct pr_usrreqs il_usrreqs;

#endif

#endif