make kernel includes standard
[unix-history] / usr / src / sys / netiso / clnp.h
index 5709886..3c1ebbb 100644 (file)
@@ -1,3 +1,11 @@
+/*-
+ * Copyright (c) 1991 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * %sccs.include.redist.c%
+ *
+ *     @(#)clnp.h      7.9 (Berkeley) %G%
+ */
 
 /***********************************************************
                Copyright IBM Corporation 1987
 
 /***********************************************************
                Copyright IBM Corporation 1987
@@ -25,9 +33,8 @@ SOFTWARE.
 /*
  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
  */
 /*
  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
  */
-/* $Header: /var/src/sys/netiso/RCS/clnp.h,v 5.1 89/02/09 16:17:22 hagens Exp $ */
-/* $Source: /var/src/sys/netiso/RCS/clnp.h,v $ */
-/*     @(#)clnp.h      7.6 (Berkeley) %G% */
+/* $Header: /big/BSD4.4/isis-usr/src/sys/netiso/RCS/clnp.h,v 1.1 1992/02/07 18:14:59 hagens Exp hagens $ */
+/* $Source: /big/BSD4.4/isis-usr/src/sys/netiso/RCS/clnp.h,v $ */
 
 #ifndef BYTE_ORDER
 /*
 
 #ifndef BYTE_ORDER
 /*
@@ -260,12 +267,13 @@ struct clnp_optidx {
 #define        CLNP_NO_ER              0x020   /* do not generate ERs */
 #define CLNP_SEND_RAW  0x080   /* send pkt as RAW DT rather than TP DT */
 #define        CLNP_NO_CKSUM   0x100   /* don't use clnp checksum */
 #define        CLNP_NO_ER              0x020   /* do not generate ERs */
 #define CLNP_SEND_RAW  0x080   /* send pkt as RAW DT rather than TP DT */
 #define        CLNP_NO_CKSUM   0x100   /* don't use clnp checksum */
-#define CLNP_ECHO              0x200   /* fake echo function */
+#define CLNP_ECHO              0x200   /* send echo request */
 #define        CLNP_NOCACHE    0x400   /* don't store cache information */
 #define        CLNP_NOCACHE    0x400   /* don't store cache information */
+#define CLNP_ECHOR             0x800   /* send echo reply */
 
 /* valid clnp flags */
 #define CLNP_VFLAGS            (CLNP_SEND_RAW|CLNP_NO_SEG|CLNP_NO_ER|CLNP_NO_CKSUM\
 
 /* valid clnp flags */
 #define CLNP_VFLAGS            (CLNP_SEND_RAW|CLNP_NO_SEG|CLNP_NO_ER|CLNP_NO_CKSUM\
-       |CLNP_ECHO|CLNP_NOCACHE)
+       |CLNP_ECHO|CLNP_NOCACHE|CLNP_ECHOR)
 
 /* 
  *     Constants used by clnp
 
 /* 
  *     Constants used by clnp
@@ -364,10 +372,11 @@ struct troll {
 };
 
 #define        SN_OUTPUT(clcp, m)\
 };
 
 #define        SN_OUTPUT(clcp, m)\
-       troll_output(clcp->clc_ifa->ia_ifp, m, clcp->clc_firsthop, clcp->clc_rt)
+       troll_output(clcp->clc_ifp, m, clcp->clc_firsthop, clcp->clc_rt)
 
 
-#define        SN_MTU(ifp)\
-       (ifp->if_mtu - trollctl.tr_mtu_adj)
+#define        SN_MTU(ifp, rt) (((rt && rt->rt_rmx.rmx_mtu) ?\
+       rt->rt_rmx.rmx_mtu : clnp_badmtu(ifp, rt, __LINE__, __FILE__))\
+               - trollctl.tr_mtu_adj)
 
 #ifdef KERNEL
 extern float troll_random;
 
 #ifdef KERNEL
 extern float troll_random;
@@ -376,10 +385,10 @@ extern float troll_random;
 #else  /* NO TROLL */
 
 #define        SN_OUTPUT(clcp, m)\
 #else  /* NO TROLL */
 
 #define        SN_OUTPUT(clcp, m)\
-       (*clcp->clc_ifa->ia_ifp->if_output)(clcp->clc_ifa->ia_ifp, m, clcp->clc_firsthop, clcp->clc_rt)
+       (*clcp->clc_ifp->if_output)(clcp->clc_ifp, m, clcp->clc_firsthop, clcp->clc_rt)
 
 
-#define        SN_MTU(ifp)\
-       (ifp->if_mtu)
+#define        SN_MTU(ifp, rt) (((rt && rt->rt_rmx.rmx_mtu) ?\
+       rt->rt_rmx.rmx_mtu : clnp_badmtu(ifp, rt, __LINE__, __FILE__)))
 
 #endif TROLL
 
 
 #endif TROLL
 
@@ -421,12 +430,11 @@ struct clnp_cache {
 
        /* these fields are state that clnp_output requires to finish the pkt */
        int                                     clc_segoff;             /* offset of seg part of header */
 
        /* these fields are state that clnp_output requires to finish the pkt */
        int                                     clc_segoff;             /* offset of seg part of header */
-       struct sockaddr         *clc_firsthop;  /* first hop of packet (points into
-                                                                                       the route structure) */
-       struct iso_ifaddr       *clc_ifa;               /* ptr to interface (points into
-                                                                                       the route structure) */
        struct rtentry          *clc_rt;                /* ptr to rtentry (points into
                                                                                        the route structure) */
        struct rtentry          *clc_rt;                /* ptr to rtentry (points into
                                                                                        the route structure) */
+       struct sockaddr         *clc_firsthop;  /* first hop of packet */
+       struct ifnet            *clc_ifp;               /* ptr to interface structure */
+       struct iso_ifaddr       *clc_ifa;               /* ptr to interface address */
        struct mbuf             *clc_hdr;               /* cached pkt hdr (finally)! */
 };
 
        struct mbuf             *clc_hdr;               /* cached pkt hdr (finally)! */
 };