diff options
Diffstat (limited to 'sys/netinet/in_pcb.h')
| -rw-r--r-- | sys/netinet/in_pcb.h | 40 | 
1 files changed, 37 insertions, 3 deletions
| diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h index 92e3ddf0a315..e4adb614e6d4 100644 --- a/sys/netinet/in_pcb.h +++ b/sys/netinet/in_pcb.h @@ -31,9 +31,12 @@   * SUCH DAMAGE.   *   *	from: @(#)in_pcb.h	7.6 (Berkeley) 6/28/90 - *	$Id: in_pcb.h,v 1.2 1993/10/16 18:26:03 rgrimes Exp $ + *	$Id: in_pcb.h,v 1.5 1993/11/25 01:35:06 wollman Exp $   */ +#ifndef _NETINET_IN_PCB_H_ +#define _NETINET_IN_PCB_H_ 1 +  /*   * Common structure pcb for internet protocol implementation.   * Here are stored pointers to local and foreign host table @@ -56,12 +59,24 @@ struct inpcb {  	int	inp_flags;		/* generic IP/datagram flags */  	struct	ip inp_ip;		/* header prototype; should have more */  	struct	mbuf *inp_options;	/* IP options */ +#ifdef MTUDISC +	int	inp_pmtu;		/* path mtu if INP_MTUDISCOVERED */ +	int	inp_mtutimer;		/* decremented once a minute to +					   try to increase mtu */ +	int	(*inp_mtunotify)(struct inpcb *, int); +				/* function to call when MTU may have +				 * changed */ +#endif /* MTUDISC */  };  /* flags in inp_flags: */  #define	INP_RECVOPTS		0x01	/* receive incoming IP options */  #define	INP_RECVRETOPTS		0x02	/* receive IP options for reply */  #define	INP_RECVDSTADDR		0x04	/* receive IP dst address */ +#ifdef MTUDISC +#define	INP_DISCOVERMTU		0x08	/* practice Path MTU discovery */ +#define	INP_MTUDISCOVERED	0x10	/* we were able to get such a route */ +#endif /* MTUDISC */  #define	INP_CONTROLOPTS		(INP_RECVOPTS|INP_RECVRETOPTS|INP_RECVDSTADDR)  #ifdef sotorawcb @@ -88,5 +103,24 @@ struct raw_inpcb {  #define	sotorawinpcb(so)	((struct raw_inpcb *)(so)->so_pcb)  #ifdef KERNEL -struct	inpcb *in_pcblookup(); -#endif +/* From in_pcb.h: */ +extern int in_pcballoc(struct socket *, struct inpcb *); +extern int in_pcbbind(struct inpcb *, struct mbuf *); +extern int in_pcbconnect(struct inpcb *, struct mbuf *); +extern void in_pcbdisconnect(struct inpcb *); +extern void in_pcbdetach(struct inpcb *); +extern void in_setsockaddr(struct inpcb *, struct mbuf *); +extern void in_setpeeraddr(struct inpcb *, struct mbuf *); +extern void in_pcbnotify(struct inpcb *, struct sockaddr *, int, struct in_addr, int, int, void (*)(struct inpcb *, int)); +extern void in_losing(struct inpcb *); +extern void in_rtchange(struct inpcb *, int); +extern struct inpcb *in_pcblookup(struct inpcb *, struct in_addr, int, struct in_addr, int, int); + + +#ifdef MTUDISC +extern void	in_pcbmtu(struct inpcb *); +extern void	in_mtunotify(struct inpcb *); +extern void	in_bumpmtu(struct inpcb *); +#endif /* MTUDISC */ +#endif /* KERNEL */ +#endif /* _NETINET_IN_PCB_H_ */ | 
