aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/in_pcb.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/in_pcb.h')
-rw-r--r--sys/netinet/in_pcb.h40
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_ */