URI:
       tdhcp.h - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tdhcp.h (3267B)
       ---
            1 
            2 enum
            3 {
            4         OfferTimeout=        60,                /* when an offer times out */
            5         MaxLease=        60*60,                /* longest lease for dynamic binding */
            6         MinLease=        15*60,                /* shortest lease for dynamic binding */
            7         StaticLease=        30*60,                /* lease for static binding */
            8 
            9         IPUDPHDRSIZE=        28,                /* size of an IP plus UDP header */
           10         MINSUPPORTED=        576,                /* biggest IP message the client must support */
           11 
           12         /* lengths of some bootp fields */
           13         Maxhwlen=        16,
           14         Maxfilelen=        128,
           15         Maxoptlen=        312-4,
           16 
           17         /* bootp types */
           18         Bootrequest=        1,
           19         Bootreply=         2,
           20 
           21         /* bootp flags */
           22         Fbroadcast=        1<<15,
           23 
           24         /* dhcp types */
           25         Discover=        1,
           26         Offer=                2,
           27         Request=        3,
           28         Decline=        4,
           29         Ack=                5,
           30         Nak=                6,
           31         Release=        7,
           32         Inform=                8,
           33 
           34         /* bootp option types */
           35         OBend=                        255,
           36         OBpad=                        0,
           37         OBmask=                        1,
           38         OBtimeoff=                2,
           39         OBrouter=                3,
           40         OBtimeserver=                4,
           41         OBnameserver=                5,
           42         OBdnserver=                6,
           43         OBlogserver=                7,
           44         OBcookieserver=                8,
           45         OBlprserver=                9,
           46         OBimpressserver=        10,
           47         OBrlserver=                11,
           48         OBhostname=                12,        /* 0xc0 */
           49         OBbflen=                13,
           50         OBdumpfile=                14,
           51         OBdomainname=                15,
           52         OBswapserver=                16,        /* 0x10 */
           53         OBrootpath=                17,
           54         OBextpath=                18,
           55         OBipforward=                19,
           56         OBnonlocal=                20,
           57         OBpolicyfilter=                21,
           58         OBmaxdatagram=                22,
           59         OBttl=                        23,
           60         OBpathtimeout=                24,
           61         OBpathplateau=                25,
           62         OBmtu=                        26,
           63         OBsubnetslocal=                27,
           64         OBbaddr=                28,
           65         OBdiscovermask=                29,
           66         OBsupplymask=                30,
           67         OBdiscoverrouter=        31,
           68         OBrsserver=                32,        /* 0x20 */
           69         OBstaticroutes=                33,
           70         OBtrailerencap=                34,
           71         OBarptimeout=                35,
           72         OBetherencap=                36,
           73         OBtcpttl=                37,
           74         OBtcpka=                38,
           75         OBtcpkag=                39,
           76         OBnisdomain=                40,
           77         OBniserver=                41,
           78         OBntpserver=                42,
           79         OBvendorinfo=                43,        /* 0x2b */
           80         OBnetbiosns=                44,
           81         OBnetbiosdds=                45,
           82         OBnetbiostype=                46,
           83         OBnetbiosscope=                47,
           84         OBxfontserver=                48,        /* 0x30 */
           85         OBxdispmanager=                49,
           86         OBnisplusdomain=        64,        /* 0x40 */
           87         OBnisplusserver=        65,
           88         OBhomeagent=                68,
           89         OBsmtpserver=                69,
           90         OBpop3server=                70,
           91         OBnntpserver=                71,
           92         OBwwwserver=                72,
           93         OBfingerserver=                73,
           94         OBircserver=                74,
           95         OBstserver=                75,
           96         OBstdaserver=                76,
           97 
           98         /* dhcp options */
           99         ODipaddr=                50,        /* 0x32 */
          100         ODlease=                51,
          101         ODoverload=                52,
          102         ODtype=                        53,        /* 0x35 */
          103         ODserverid=                54,        /* 0x36 */
          104         ODparams=                55,        /* 0x37 */
          105         ODmessage=                56,
          106         ODmaxmsg=                57,
          107         ODrenewaltime=                58,
          108         ODrebindingtime=        59,
          109         ODvendorclass=                60,
          110         ODclientid=                61,        /* 0x3d */
          111         ODtftpserver=                66,
          112         ODbootfile=                67,
          113 
          114         /* plan9 vendor info options */
          115         OP9fs=                        128,        // plan9 file servers
          116         OP9auth=                129,        // plan9 auth servers
          117 };
          118 
          119 /* a lease that never expires */
          120 #define Lforever        0xffffffffU
          121 
          122 /* dhcp states */
          123 enum {
          124         Sinit,
          125         Sselecting,
          126         Srequesting,
          127         Sbound,
          128         Srenewing,
          129         Srebinding
          130 };
          131 
          132 typedef struct Bootp        Bootp;
          133 struct Bootp
          134 {
          135         uchar        op;                        /* opcode */
          136         uchar        htype;                        /* hardware type */
          137         uchar        hlen;                        /* hardware address len */
          138         uchar        hops;                        /* hops */
          139         uchar        xid[4];                        /* a random number */
          140         uchar        secs[2];                /* elapsed since client started booting */
          141         uchar        flags[2];
          142         uchar        ciaddr[IPv4addrlen];        /* client IP address (client tells server) */
          143         uchar        yiaddr[IPv4addrlen];        /* client IP address (server tells client) */
          144         uchar        siaddr[IPv4addrlen];        /* server IP address */
          145         uchar        giaddr[IPv4addrlen];        /* gateway IP address */
          146         uchar        chaddr[Maxhwlen];        /* client hardware address */
          147         char        sname[64];                /* server host name (optional) */
          148         char        file[Maxfilelen];        /* boot file name */
          149         uchar        optmagic[4];
          150         uchar        optdata[Maxoptlen];
          151 };