[BACK]Return to bootp.h CVS log [TXT][DIR] Up to [local] / sys / lib / libsa

Annotation of sys/lib/libsa/bootp.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: bootp.h,v 1.5 2003/08/11 06:23:09 deraadt Exp $       */
        !             2: /*     $NetBSD: bootp.h,v 1.3 1996/09/26 23:22:01 cgd Exp $    */
        !             3:
        !             4: /*
        !             5:  * Bootstrap Protocol (BOOTP).  RFC951 and RFC1048.
        !             6:  *
        !             7:  * This file specifies the "implementation-independent" BOOTP protocol
        !             8:  * information which is common to both client and server.
        !             9:  *
        !            10:  * Copyright 1988 by Carnegie Mellon.
        !            11:  *
        !            12:  * Permission to use, copy, modify, and distribute this program for any
        !            13:  * purpose and without fee is hereby granted, provided that this copyright
        !            14:  * and permission notice appear on all copies and supporting documentation,
        !            15:  * the name of Carnegie Mellon not be used in advertising or publicity
        !            16:  * pertaining to distribution of the program without specific prior
        !            17:  * permission, and notice be given in supporting documentation that copying
        !            18:  * and distribution is by permission of Carnegie Mellon and Stanford
        !            19:  * University.  Carnegie Mellon makes no representations about the
        !            20:  * suitability of this software for any purpose.  It is provided "as is"
        !            21:  * without express or implied warranty.
        !            22:  */
        !            23:
        !            24: #define BP_CHADDR_LEN  16
        !            25: #define BP_SNAME_LEN   64
        !            26: #define BP_FILE_LEN    128
        !            27: #define BP_VEND_LEN    64
        !            28: #define BP_MINPKTSZ    300     /* to check sizeof(struct bootp) */
        !            29:
        !            30:
        !            31: struct bootp {
        !            32:        u_char          bp_op;                  /* packet opcode type */
        !            33:        u_char          bp_htype;               /* hardware addr type */
        !            34:        u_char          bp_hlen;                /* hardware addr length */
        !            35:        u_char          bp_hops;                /* gateway hops */
        !            36:        u_int           bp_xid;                 /* transaction ID */
        !            37:        u_short         bp_secs;                /* seconds since boot began */
        !            38:        u_short         bp_flags;               /* RFC1532 broadcast, etc. */
        !            39:        struct in_addr  bp_ciaddr;              /* client IP address */
        !            40:        struct in_addr  bp_yiaddr;              /* 'your' IP address */
        !            41:        struct in_addr  bp_siaddr;              /* server IP address */
        !            42:        struct in_addr  bp_giaddr;              /* gateway IP address */
        !            43:        u_char          bp_chaddr[BP_CHADDR_LEN];/* client hardware address */
        !            44:        u_char          bp_sname[BP_SNAME_LEN]; /* server host name */
        !            45:        u_char          bp_file[BP_FILE_LEN];   /* boot file name */
        !            46:        u_char          bp_vend[BP_VEND_LEN];   /* vendor-specific area */
        !            47: };
        !            48:
        !            49: /*
        !            50:  * UDP port numbers, server and client.
        !            51:  */
        !            52: #define        IPPORT_BOOTPS           67
        !            53: #define        IPPORT_BOOTPC           68
        !            54:
        !            55: #define BOOTREPLY              2
        !            56: #define BOOTREQUEST            1
        !            57:
        !            58: /*
        !            59:  * Hardware types from Assigned Numbers RFC.
        !            60:  */
        !            61: #define HTYPE_ETHERNET         1
        !            62: #define HTYPE_EXP_ETHERNET     2
        !            63: #define HTYPE_AX25             3
        !            64: #define HTYPE_PRONET           4
        !            65: #define HTYPE_CHAOS            5
        !            66: #define HTYPE_IEEE802          6
        !            67: #define HTYPE_ARCNET           7
        !            68:
        !            69: /*
        !            70:  * Vendor magic cookie (v_magic) for CMU
        !            71:  */
        !            72: #define VM_CMU         "CMU"
        !            73:
        !            74: /*
        !            75:  * Vendor magic cookie (v_magic) for RFC1048
        !            76:  */
        !            77: #define VM_RFC1048     { 99, 130, 83, 99 }
        !            78:
        !            79: 
        !            80:
        !            81: /*
        !            82:  * RFC1048 tag values used to specify what information is being supplied in
        !            83:  * the vendor field of the packet.
        !            84:  */
        !            85:
        !            86: #define TAG_PAD                        ((unsigned char)   0)
        !            87: #define TAG_SUBNET_MASK                ((unsigned char)   1)
        !            88: #define TAG_TIME_OFFSET                ((unsigned char)   2)
        !            89: #define TAG_GATEWAY            ((unsigned char)   3)
        !            90: #define TAG_TIME_SERVER                ((unsigned char)   4)
        !            91: #define TAG_NAME_SERVER                ((unsigned char)   5)
        !            92: #define TAG_DOMAIN_SERVER      ((unsigned char)   6)
        !            93: #define TAG_LOG_SERVER         ((unsigned char)   7)
        !            94: #define TAG_COOKIE_SERVER      ((unsigned char)   8)
        !            95: #define TAG_LPR_SERVER         ((unsigned char)   9)
        !            96: #define TAG_IMPRESS_SERVER     ((unsigned char)  10)
        !            97: #define TAG_RLP_SERVER         ((unsigned char)  11)
        !            98: #define TAG_HOSTNAME           ((unsigned char)  12)
        !            99: #define TAG_BOOTSIZE           ((unsigned char)  13)
        !           100: #define TAG_DUMPFILE           ((unsigned char)  14)
        !           101: #define TAG_DOMAINNAME         ((unsigned char)  15)
        !           102: #define TAG_SWAPSERVER         ((unsigned char)  16)
        !           103: #define TAG_ROOTPATH           ((unsigned char)  17)
        !           104: #define TAG_EXTEN_FILE         ((unsigned char)  18)
        !           105: #define TAG_NIS_DOMAIN         ((unsigned char)  40)
        !           106: #define TAG_NIS_SERVER         ((unsigned char)  41)
        !           107: #define TAG_NTP_SERVER         ((unsigned char)  42)
        !           108: #define TAG_MAX_MSGSZ          ((unsigned char)  57)
        !           109: #define TAG_END                        ((unsigned char) 255)
        !           110:
        !           111:
        !           112:
        !           113: /*
        !           114:  * "vendor" data permitted for CMU bootp clients.
        !           115:  */
        !           116:
        !           117: struct cmu_vend {
        !           118:        unsigned char   v_magic[4];     /* magic number */
        !           119:        unsigned int    v_flags;        /* flags/opcodes, etc. */
        !           120:        struct in_addr  v_smask;        /* Subnet mask */
        !           121:        struct in_addr  v_dgate;        /* Default gateway */
        !           122:        struct in_addr  v_dns1, v_dns2; /* Domain name servers */
        !           123:        struct in_addr  v_ins1, v_ins2; /* IEN-116 name servers */
        !           124:        struct in_addr  v_ts1, v_ts2;   /* Time servers */
        !           125:        unsigned char   v_unused[25];   /* currently unused */
        !           126: };
        !           127:
        !           128: /* v_flags values */
        !           129: #define VF_SMASK       1       /* Subnet mask field contains valid data */
        !           130:
        !           131: void   bootp(int);

CVSweb