Main Page | Data Structures | File List | Data Fields | Globals

libnet-headers.h

Go to the documentation of this file.
00001 /*
00002  *  $Id: libnet-headers.h,v 1.13 2004/03/01 20:26:12 mike Exp $
00003  *
00004  *  libnet-headers.h - Network routine library headers header file
00005  *
00006  *  Copyright (c) 1998 - 2004 Mike D. Schiffman <mike@infonexus.com>
00007  *  All rights reserved.
00008  *
00009  * Redistribution and use in source and binary forms, with or without
00010  * modification, are permitted provided that the following conditions
00011  * are met:
00012  * 1. Redistributions of source code must retain the above copyright
00013  *    notice, this list of conditions and the following disclaimer.
00014  * 2. Redistributions in binary form must reproduce the above copyright
00015  *    notice, this list of conditions and the following disclaimer in the
00016  *    documentation and/or other materials provided with the distribution.
00017  *
00018  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
00019  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
00022  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00023  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
00024  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00025  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00026  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
00027  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00028  * SUCH DAMAGE.
00029  *
00030  */
00031 
00032 #ifndef __LIBNET_HEADERS_H
00033 #define __LIBNET_HEADERS_H
00034 
00042 #define LIBNET_802_1Q_H         0x12    
00043 #define LIBNET_802_1X_H         0x04    
00044 #define LIBNET_802_2_H          0x03    
00045 #define LIBNET_802_2SNAP_H      0x08    
00046 #define LIBNET_802_3_H          0x0e    
00047 #define LIBNET_ARP_H            0x08    
00048 #define LIBNET_ARP_ETH_IP_H     0x1c    
00049 #define LIBNET_BGP4_HEADER_H    0x13    
00050 #define LIBNET_BGP4_OPEN_H      0x0a    
00051 #define LIBNET_BGP4_UPDATE_H    0x04    
00052 #define LIBNET_BGP4_NOTIFICATION_H 0x02 
00053 #define LIBNET_CDP_H            0x08    
00054 #define LIBNET_DHCPV4_H         0xf0    
00055 #define LIBNET_UDP_DNSV4_H      0x0c    
00056 #define LIBNET_TCP_DNSV4_H      0x0e    
00057 #define LIBNET_ETH_H            0x0e    
00058 #define LIBNET_FDDI_H           0x15    
00059 #define LIBNET_ICMPV4_H         0x04    
00060 #define LIBNET_ICMPV4_ECHO_H    0x08    
00061 #define LIBNET_ICMPV4_MASK_H    0x0c    
00062 #define LIBNET_ICMPV4_UNREACH_H  0x08   
00063 #define LIBNET_ICMPV4_TIMXCEED_H 0x08   
00064 #define LIBNET_ICMPV4_REDIRECT_H 0x08   
00065 #define LIBNET_ICMPV4_TS_H      0x14    
00066 #define LIBNET_ICMPV6_H         0x08    
00067 #define LIBNET_IGMP_H           0x08    
00068 #define LIBNET_IPV4_H           0x14    
00069 #define LIBNET_IPV6_H           0x28    
00070 #define LIBNET_IPV6_FRAG_H      0x08    
00071 #define LIBNET_IPV6_ROUTING_H   0x04    
00072 #define LIBNET_IPV6_DESTOPTS_H  0x02    
00073 #define LIBNET_IPV6_HBHOPTS_H   0x02    
00074 #define LIBNET_IPSEC_ESP_HDR_H  0x0c    
00075 #define LIBNET_IPSEC_ESP_FTR_H  0x02    
00076 #define LIBNET_IPSEC_AH_H       0x10    
00077 #define LIBNET_ISL_H            0x1a    
00078 #define LIBNET_GRE_H            0x04    
00079 #define LIBNET_GRE_SRE_H        0x04    
00080 #define LIBNET_MPLS_H           0x04    
00081 #define LIBNET_OSPF_H           0x10    
00082 #define LIBNET_OSPF_HELLO_H     0x18    
00083 #define LIBNET_OSPF_DBD_H       0x08    
00084 #define LIBNET_OSPF_LSR_H       0x0c    
00085 #define LIBNET_OSPF_LSU_H       0x04    
00086 #define LIBNET_OSPF_LSA_H       0x14    
00087 #define LIBNET_OSPF_AUTH_H      0x08    
00088 #define LIBNET_OSPF_CKSUM       0x10    
00089 #define LIBNET_OSPF_LS_RTR_H    0x10    
00090 #define LIBNET_OSPF_LS_NET_H    0x08    
00091 #define LIBNET_OSPF_LS_SUM_H    0x0c    
00092 #define LIBNET_OSPF_LS_AS_EXT_H 0x10    
00093 #define LIBNET_NTP_H            0x30    
00094 #define LIBNET_RIP_H            0x18    
00095 #define LIBNET_RPC_CALL_H       0x28    
00098 #define LIBNET_RPC_CALL_TCP_H   0x2c    
00101 #define LIBNET_SEBEK_H          0x30    /* sebek header:          48 bytes */   
00102 #define LIBNET_STP_CONF_H       0x23    
00103 #define LIBNET_STP_TCN_H        0x04    
00104 #define LIBNET_TOKEN_RING_H     0x16    
00105 #define LIBNET_TCP_H            0x14    
00106 #define LIBNET_UDP_H            0x08    
00107 #define LIBNET_VRRP_H           0x08    
00113 struct libnet_802_1q_hdr
00114 {
00115     u_int8_t vlan_dhost[ETHER_ADDR_LEN];  
00116     u_int8_t vlan_shost[ETHER_ADDR_LEN];  
00117     u_int16_t vlan_tpi;                   
00118     u_int16_t vlan_priority_c_vid;        
00119 #define LIBNET_802_1Q_PRIMASK   0x0007    
00120 #define LIBNET_802_1Q_CFIMASK   0x0001    
00121 #define LIBNET_802_1Q_VIDMASK   0x0fff    
00122     u_int16_t vlan_len;                   
00123 };  
00124 
00129 struct libnet_802_1x_hdr
00130 {
00131     u_int8_t dot1x_version;               
00132     u_int8_t dot1x_type;                  
00133 #define LIBNET_802_1X_PACKET    0x00      
00134 #define LIBNET_802_1X_START     0x01      
00135 #define LIBNET_802_1X_LOGOFF    0x02      
00136 #define LIBNET_802_1X_KEY       0x03      
00137 #define LIBNET_802_1X_ENCASFAL  0x04      
00138     u_int16_t dot1x_length;               
00139 };  
00140 
00141 /*
00142  *  IEEE 802.2 LLC header
00143  *  Link Layer Control
00144  *  static header size: 3 bytes
00145  */
00146 struct libnet_802_2_hdr
00147 {
00148     u_int8_t llc_dsap;            /* destination service access point */
00149     u_int8_t llc_ssap;            /* source service access point */
00150 #define LIBNET_SAP_STP          0x42
00151 #define LIBNET_SAP_SNAP         0xaa
00152     u_int8_t llc_control;         /* control field */
00153 };
00154 
00155 
00156 /*
00157  *  IEEE 802.2 LLC/SNAP header
00158  *  SubNetwork Attachment Point
00159  *  static header size: 8 bytes
00160  */
00161 struct libnet_802_2snap_hdr
00162 {
00163     u_int8_t snap_dsap;           /* destination service access point */
00164     u_int8_t snap_ssap;           /* destination service access point */
00165     u_int8_t snap_control;        /* control field */
00166     u_int8_t snap_oui[3];         /* OUI */
00167     u_int16_t snap_type;          /* type */
00168 };
00169 
00170 
00171 /*
00172  *  802.3 header
00173  *  IEEE Ethernet
00174  *  Static header size: 14 bytes
00175  */
00176 struct libnet_802_3_hdr
00177 {
00178     u_int8_t  _802_3_dhost[ETHER_ADDR_LEN];/* destination ethernet address */
00179     u_int8_t  _802_3_shost[ETHER_ADDR_LEN];/* source ethernet address */
00180     u_int16_t _802_3_len;                 /* packet type ID */
00181 };
00182 
00183 
00184 /* 
00185  *  ARP header
00186  *  Address Resolution Protocol
00187  *  Base header size: 8 bytes
00188  */
00189 struct libnet_arp_hdr
00190 {
00191     u_int16_t ar_hrd;         /* format of hardware address */
00192 #define ARPHRD_NETROM   0   /* from KA9Q: NET/ROM pseudo */
00193 #define ARPHRD_ETHER    1   /* Ethernet 10Mbps */
00194 #define ARPHRD_EETHER   2   /* Experimental Ethernet */
00195 #define ARPHRD_AX25     3   /* AX.25 Level 2 */
00196 #define ARPHRD_PRONET   4   /* PROnet token ring */
00197 #define ARPHRD_CHAOS    5   /* Chaosnet */
00198 #define ARPHRD_IEEE802  6   /* IEEE 802.2 Ethernet/TR/TB */
00199 #define ARPHRD_ARCNET   7   /* ARCnet */
00200 #define ARPHRD_APPLETLK 8   /* APPLEtalk */
00201 #define ARPHRD_LANSTAR  9   /* Lanstar */
00202 #define ARPHRD_DLCI     15  /* Frame Relay DLCI */
00203 #define ARPHRD_ATM      19  /* ATM */
00204 #define ARPHRD_METRICOM 23  /* Metricom STRIP (new IANA id) */
00205 #define ARPHRD_IPSEC    31  /* IPsec tunnel */
00206     u_int16_t ar_pro;         /* format of protocol address */
00207     u_int8_t  ar_hln;         /* length of hardware address */
00208     u_int8_t  ar_pln;         /* length of protocol addres */
00209     u_int16_t ar_op;          /* operation type */
00210 #define ARPOP_REQUEST    1  /* req to resolve address */
00211 #define ARPOP_REPLY      2  /* resp to previous request */
00212 #define ARPOP_REVREQUEST 3  /* req protocol address given hardware */
00213 #define ARPOP_REVREPLY   4  /* resp giving protocol address */
00214 #define ARPOP_INVREQUEST 8  /* req to identify peer */
00215 #define ARPOP_INVREPLY   9  /* resp identifying peer */
00216     /* address information allocated dynamically */
00217 };
00218 
00219 /*
00220  * BGP4 header
00221  * Border Gateway Protocol 4
00222  * Base header size : 19 bytes
00223  */
00224 struct libnet_bgp4_header_hdr
00225 {
00226 #define LIBNET_BGP4_MARKER_SIZE   16
00227     u_int8_t marker[LIBNET_BGP4_MARKER_SIZE];
00228     u_int16_t len;
00229     u_int8_t type;
00230 #define LIBNET_BGP4_OPEN          1
00231 #define LIBNET_BGP4_UPDATE        2
00232 #define LIBNET_BGP4_NOTIFICATION  3
00233 #define LIBNET_BGP4_KEEPALIVE     4
00234 };
00235 
00236 /*
00237  * BGP4 open header
00238  * Border Gateway Protocol 4
00239  * Base header size : 10 bytes
00240  */
00241 struct libnet_bgp4_open_hdr
00242 {
00243     u_int8_t version;
00244     u_int16_t src_as;
00245     u_int16_t hold_time;
00246     u_int32_t bgp_id;
00247     u_int8_t opt_len;
00248 };
00249 
00250 /*
00251  * BGP4 notification message
00252  *
00253  * Border Gateway Protocol 4
00254  * Base header size : 2 bytes
00255  *
00256  * Use payload if you need data
00257  */
00258 struct libnet_bgp4_notification_hdr
00259 {
00260 #define LIBNET_BGP4_MESSAGE_HEADER_ERROR  1
00261 #define LIBNET_BGP4_OPEN_MESSAGE_ERROR    2
00262 #define LIBNET_BGP4_UPDATE_MESSAGE_ERROR  3
00263 #define LIBNET_BGP4_HOLD_TIMER_EXPIRED    4
00264 #define LIBNET_BGP4_FINITE_STATE__ERROR   5
00265 #define LIBNET_BGP4_CEASE                 6
00266     u_int8_t err_code;
00267 
00268 /* Message Header Error subcodes */
00269 #define LIBNET_BGP4_CONNECTION_NOT_SYNCHRONIZED    1
00270 #define LIBNET_BGP4_BAD_MESSAGE_LENGTH             2
00271 #define LIBNET_BGP4_BAD_MESSAGE_TYPE               3
00272 /* OPEN Message Error subcodes */
00273 #define LIBNET_BGP4_UNSUPPORTED_VERSION_NUMBER     1
00274 #define LIBNET_BGP4_BAD_PEER_AS                    2
00275 #define LIBNET_BGP4_BAD_BGP_IDENTIFIER             3
00276 #define LIBNET_BGP4_UNSUPPORTED_OPTIONAL_PARAMETER 4
00277 #define LIBNET_BGP4_AUTHENTICATION_FAILURE         5
00278 #define LIBNET_BGP4_UNACCEPTABLE_HOLD_TIME         6
00279 /* UPDATE Message Error subcodes */
00280 #define LIBNET_BGP4_MALFORMED_ATTRIBUTE_LIST
00281 #define LIBNET_BGP4_UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE
00282 #define LIBNET_BGP4_MISSING_WELL_KNOWN_ATTRIBUTE
00283 #define LIBNET_BGP4_ATTRIBUTE_FLAGS_ERROR
00284 #define LIBNET_BGP4_ATTRIBUTE_LENGTH_ERROR
00285 #define LIBNET_BGP4_INVALID_ORIGIN_ATTRIBUTE
00286 #define LIBNET_BGP4_AS_ROUTING_LOOP
00287 #define LIBNET_BGP4_INVALID_NEXT_HOP_ATTRIBUTE
00288 #define LIBNET_BGP4_OPTIONAL_ATTRIBUTE_ERROR
00289 #define LIBNET_BGP4_INVALID_NETWORK_FIELD
00290 #define LIBNET_BGP4_MALFORMED_AS_PATH
00291     u_int8_t err_subcode;
00292 };
00293 
00294 
00295 
00296 /*
00297  *  CDP header
00298  *  Cisco Discovery Protocol
00299  *  Base header size: 8 bytes
00300  */
00301 
00302 /*
00303  *  For checksum stuff -- IANA says 135-254 is "unassigned" as of 12.2001.
00304  *  Let's hope this one stays that way for a while!
00305  */
00306 #define LIBNET_PROTO_CDP    200
00307 struct libnet_cdp_hdr
00308 {
00309     u_int8_t cdp_version;     /* version (should always be 0x01) */
00310     u_int8_t cdp_ttl;         /* time reciever should hold info in this packet */
00311     u_int16_t cdp_sum;        /* checksum */
00312     u_int16_t cdp_type;       /* type */
00313 #define LIBNET_CDP_DEVID    0x1 /* device id */
00314 #define LIBNET_CDP_ADDRESS  0x2 /* address */
00315 #define LIBNET_CDP_PORTID   0x3 /* port id */
00316 #define LIBNET_CDP_CAPABIL  0x4 /* capabilities */
00317 #define LIBNET_CDP_VERSION  0x5 /* version */
00318 #define LIBNET_CDP_PLATFORM 0x6 /* platform */
00319 #define LIBNET_CDP_IPPREFIX 0x7 /* ip prefix */
00320     u_int16_t cdp_len;        /* type + length + value */
00321     /* value information done dynamically */
00322 
00323 /* CDP capabilities */
00324 #define LIBNET_CDP_CAP_L3R  0x01/* performs level 3 routing */
00325 #define LIBNET_CDP_CAP_L2B  0x02/* performs level 2 transparent bridging */
00326 #define LIBNET_CDP_CAP_L2SRB 0x04/* performs level 2 sourceroute bridging */
00327 #define LIBNET_CDP_CAP_L2S  0x08/* performs level 2 switching */
00328 #define LIBNET_CDP_CAP_SR   0x10/* sends and recieves packets on a network */
00329 #define LIBNET_CDP_CAP_NOI  0x20/* does not forward IGMP on non-router ports */
00330 #define LIBNET_CDP_CAP_L1F  0x40/* provides level 1 functionality */
00331 };
00332 
00333 
00334 /*
00335  *  Used as an overlay for type/len/values
00336  */
00337 struct libnet_cdp_value_hdr
00338 {
00339     u_int16_t cdp_type;
00340     u_int16_t cdp_len;
00341 };
00342 
00343 
00344 /*
00345  *  DHCP header
00346  *  Dynamic Host Configuration Protocol
00347  *  Static header size: f0 bytes
00348  */
00349 struct libnet_dhcpv4_hdr
00350 {
00351     u_int8_t dhcp_opcode;     /* opcode */
00352 #define LIBNET_DHCP_REQUEST 0x1
00353 #define LIBNET_DHCP_REPLY   0x2
00354     u_int8_t dhcp_htype;      /* hardware address type */
00355     u_int8_t dhcp_hlen;       /* hardware address length */
00356     u_int8_t dhcp_hopcount;   /* used by proxy servers */
00357     u_int32_t dhcp_xid;        /* transaction ID */
00358     u_int16_t dhcp_secs;      /* number of seconds since trying to bootstrap */
00359     u_int16_t dhcp_flags;     /* flags for DHCP, unused for BOOTP */
00360     u_int32_t dhcp_cip;        /* client's IP */
00361     u_int32_t dhcp_yip;        /* your IP */
00362     u_int32_t dhcp_sip;        /* server's IP */
00363     u_int32_t dhcp_gip;        /* gateway IP */
00364     u_int8_t dhcp_chaddr[16]; /* client hardware address */
00365     u_int8_t dhcp_sname[64];  /* server host name */
00366     u_int8_t dhcp_file[128];  /* boot file name */
00367     u_int32_t dhcp_magic;      /* BOOTP magic header */
00368 #define DHCP_MAGIC                  0x63825363
00369 #define LIBNET_BOOTP_MIN_LEN        0x12c
00370 #define LIBNET_DHCP_PAD             0x00
00371 #define LIBNET_DHCP_SUBNETMASK      0x01
00372 #define LIBNET_DHCP_TIMEOFFSET      0x02
00373 #define LIBNET_DHCP_ROUTER          0x03
00374 #define LIBNET_DHCP_TIMESERVER      0x04
00375 #define LIBNET_DHCP_NAMESERVER      0x05
00376 #define LIBNET_DHCP_DNS             0x06
00377 #define LIBNET_DHCP_LOGSERV         0x07
00378 #define LIBNET_DHCP_COOKIESERV      0x08
00379 #define LIBNET_DHCP_LPRSERV         0x09
00380 #define LIBNET_DHCP_IMPSERV         0x0a
00381 #define LIBNET_DHCP_RESSERV         0x0b
00382 #define LIBNET_DHCP_HOSTNAME        0x0c
00383 #define LIBNET_DHCP_BOOTFILESIZE    0x0d
00384 #define LIBNET_DHCP_DUMPFILE        0x0e
00385 #define LIBNET_DHCP_DOMAINNAME      0x0f
00386 #define LIBNET_DHCP_SWAPSERV        0x10
00387 #define LIBNET_DHCP_ROOTPATH        0x11
00388 #define LIBNET_DHCP_EXTENPATH       0x12
00389 #define LIBNET_DHCP_IPFORWARD       0x13
00390 #define LIBNET_DHCP_SRCROUTE        0x14
00391 #define LIBNET_DHCP_POLICYFILTER    0x15
00392 #define LIBNET_DHCP_MAXASMSIZE      0x16
00393 #define LIBNET_DHCP_IPTTL           0x17
00394 #define LIBNET_DHCP_MTUTIMEOUT      0x18
00395 #define LIBNET_DHCP_MTUTABLE        0x19
00396 #define LIBNET_DHCP_MTUSIZE         0x1a
00397 #define LIBNET_DHCP_LOCALSUBNETS    0x1b
00398 #define LIBNET_DHCP_BROADCASTADDR   0x1c
00399 #define LIBNET_DHCP_DOMASKDISCOV    0x1d
00400 #define LIBNET_DHCP_MASKSUPPLY      0x1e
00401 #define LIBNET_DHCP_DOROUTEDISC     0x1f
00402 #define LIBNET_DHCP_ROUTERSOLICIT   0x20
00403 #define LIBNET_DHCP_STATICROUTE     0x21
00404 #define LIBNET_DHCP_TRAILERENCAP    0x22
00405 #define LIBNET_DHCP_ARPTIMEOUT      0x23
00406 #define LIBNET_DHCP_ETHERENCAP      0x24
00407 #define LIBNET_DHCP_TCPTTL          0x25
00408 #define LIBNET_DHCP_TCPKEEPALIVE    0x26
00409 #define LIBNET_DHCP_TCPALIVEGARBAGE 0x27
00410 #define LIBNET_DHCP_NISDOMAIN       0x28
00411 #define LIBNET_DHCP_NISSERVERS      0x29
00412 #define LIBNET_DHCP_NISTIMESERV     0x2a
00413 #define LIBNET_DHCP_VENDSPECIFIC    0x2b
00414 #define LIBNET_DHCP_NBNS            0x2c
00415 #define LIBNET_DHCP_NBDD            0x2d
00416 #define LIBNET_DHCP_NBTCPIP         0x2e
00417 #define LIBNET_DHCP_NBTCPSCOPE      0x2f
00418 #define LIBNET_DHCP_XFONT           0x30
00419 #define LIBNET_DHCP_XDISPLAYMGR     0x31
00420 #define LIBNET_DHCP_DISCOVERADDR    0x32
00421 #define LIBNET_DHCP_LEASETIME       0x33
00422 #define LIBNET_DHCP_OPTIONOVERLOAD  0x34
00423 #define LIBNET_DHCP_MESSAGETYPE     0x35
00424 #define LIBNET_DHCP_SERVIDENT       0x36
00425 #define LIBNET_DHCP_PARAMREQUEST    0x37
00426 #define LIBNET_DHCP_MESSAGE         0x38
00427 #define LIBNET_DHCP_MAXMSGSIZE      0x39
00428 #define LIBNET_DHCP_RENEWTIME       0x3a
00429 #define LIBNET_DHCP_REBINDTIME      0x3b
00430 #define LIBNET_DHCP_CLASSSID        0x3c
00431 #define LIBNET_DHCP_CLIENTID        0x3d
00432 #define LIBNET_DHCP_NISPLUSDOMAIN   0x40
00433 #define LIBNET_DHCP_NISPLUSSERVERS  0x41
00434 #define LIBNET_DHCP_MOBILEIPAGENT   0x44
00435 #define LIBNET_DHCP_SMTPSERVER      0x45
00436 #define LIBNET_DHCP_POP3SERVER      0x46
00437 #define LIBNET_DHCP_NNTPSERVER      0x47
00438 #define LIBNET_DHCP_WWWSERVER       0x48
00439 #define LIBNET_DHCP_FINGERSERVER    0x49
00440 #define LIBNET_DHCP_IRCSERVER       0x4a
00441 #define LIBNET_DHCP_STSERVER        0x4b
00442 #define LIBNET_DHCP_STDASERVER      0x4c
00443 #define LIBNET_DHCP_END             0xff
00444 
00445 #define LIBNET_DHCP_MSGDISCOVER     0x01
00446 #define LIBNET_DHCP_MSGOFFER        0x02
00447 #define LIBNET_DHCP_MSGREQUEST      0x03
00448 #define LIBNET_DHCP_MSGDECLINE      0x04
00449 #define LIBNET_DHCP_MSGACK          0x05
00450 #define LIBNET_DHCP_MSGNACK         0x06
00451 #define LIBNET_DHCP_MSGRELEASE      0x07
00452 #define LIBNET_DHCP_MSGINFORM       0x08
00453 };
00454 
00455 
00456 /*
00457  *  Base DNSv4 header
00458  *  Domain Name System
00459  *  Base header size: 12/14 bytes
00460  */
00461 /* this little guy got left out in the cold */
00462 #define LIBNET_DNS_H LIBNET_UDP_DNSV4_H
00463 struct libnet_dnsv4_hdr
00464 {
00465     u_int16_t h_len;          /* length of the packet - only used with TCP */
00466     u_int16_t id;             /* DNS packet ID */
00467     u_int16_t flags;          /* DNS flags */
00468     u_int16_t num_q;          /* Number of questions */
00469     u_int16_t num_answ_rr;    /* Number of answer resource records */
00470     u_int16_t num_auth_rr;    /* Number of authority resource records */
00471     u_int16_t num_addi_rr;    /* Number of additional resource records */
00472 };
00473 
00474 
00475 /*
00476  *  Ethernet II header
00477  *  Static header size: 14 bytes
00478  */
00479 struct libnet_ethernet_hdr
00480 {
00481     u_int8_t  ether_dhost[ETHER_ADDR_LEN];/* destination ethernet address */
00482     u_int8_t  ether_shost[ETHER_ADDR_LEN];/* source ethernet address */
00483     u_int16_t ether_type;                 /* protocol */
00484 };
00485 
00486 #ifndef ETHERTYPE_PUP
00487 #define ETHERTYPE_PUP           0x0200  /* PUP protocol */
00488 #endif
00489 #ifndef ETHERTYPE_IP
00490 #define ETHERTYPE_IP            0x0800  /* IP protocol */
00491 #endif
00492 #ifndef ETHERTYPE_ARP
00493 #define ETHERTYPE_ARP           0x0806  /* addr. resolution protocol */
00494 #endif
00495 #ifndef ETHERTYPE_REVARP
00496 #define ETHERTYPE_REVARP        0x8035  /* reverse addr. resolution protocol */
00497 #endif
00498 #ifndef ETHERTYPE_VLAN
00499 #define ETHERTYPE_VLAN          0x8100  /* IEEE 802.1Q VLAN tagging */
00500 #endif
00501 #ifndef ETHERTYPE_EAP
00502 #define ETHERTYPE_EAP           0x888e  /* IEEE 802.1X EAP authentication */
00503 #endif
00504 #ifndef ETHERTYPE_MPLS
00505 #define ETHERTYPE_MPLS          0x8847  /* MPLS */
00506 #endif
00507 #ifndef ETHERTYPE_LOOPBACK
00508 #define ETHERTYPE_LOOPBACK      0x9000  /* used to test interfaces */
00509 #endif
00510 
00511 struct libnet_ether_addr
00512 {
00513     u_int8_t  ether_addr_octet[6];        /* Ethernet address */
00514 };
00515 
00516 /*
00517  *  Fiber Distributed Data Interface header
00518  *
00519  *  Static header size: 21 bytes (LLC and 48-bit address addr only)
00520  *
00521  *  Note: Organization field is 3 bytes which throws off the
00522  *        alignment of type.  Therefore fddi_type (19 bytes in) 
00523  *        is specified as two u_int8_ts.
00524  */
00525 struct libnet_fddi_hdr
00526 {
00527     u_int8_t  fddi_frame_control;                      /* Class/Format/Priority */
00528 #define LIBNET_FDDI_LLC_FRAME  0x10
00529 #define LIBNET_FDDI_48BIT_ADDR 0x40
00530 #define LIBNET_FDDI_FC_REQD    LIBNET_FDDI_LLC_FRAME | LIBNET_FDDI_48BIT_ADDR 
00531     u_int8_t  fddi_dhost[FDDI_ADDR_LEN];               /* destination fddi address */
00532     u_int8_t  fddi_shost[FDDI_ADDR_LEN];               /* source fddi address */
00533     u_int8_t  fddi_llc_dsap;                           /* DSAP */
00534     u_int8_t  fddi_llc_ssap;                           /* SSAP */
00535     u_int8_t  fddi_llc_control_field;                  /* Class/Format/Priority */
00536     u_int8_t  fddi_llc_org_code[LIBNET_ORG_CODE_SIZE]; /* Organization Code 3-bytes */
00537     u_int8_t  fddi_type;                               /* Protocol Type */
00538     u_int8_t  fddi_type1;                              /* see note above. */
00539 #define FDDI_TYPE_IP            0x0800  /* IP protocol */
00540 #define FDDI_TYPE_ARP           0x0806  /* addr. resolution protocol */
00541 #define FDDI_TYPE_REVARP        0x8035  /* reverse addr. resolution protocol */
00542 };
00543 
00544 
00545 struct libnet_fddi_addr
00546 {
00547     u_int8_t  fddi_addr_octet[6];        /* FDDI address */
00548 };
00549 
00550 
00551 /*
00552  * GRE header - RFC 1701 & 2637
00553  * Generic Routing Encapsulation (GRE) 
00554  * Base header size: 4 bytes
00555  */
00556 struct libnet_gre_hdr
00557 {
00558     u_int16_t flags_ver;
00559 #define GRE_CSUM                            0x8000
00560 #define GRE_ROUTING                         0x4000
00561 #define GRE_KEY                             0x2000
00562 #define GRE_SEQ                             0x1000
00563 #define GRE_STRICT                          0x0800
00564 #define GRE_REC                             0x0700
00565 #define GRE_ACK                             0x0080
00566 
00567 #define GRE_FLAGS_MASK                          0x00F8
00568 #define GRE_VERSION_MASK                        0x0007
00569 
00570 #define GRE_VERSION_0                           0x0000
00571 #define GRE_VERSION_1                           0x0001
00572 
00573     u_int16_t type;
00574 #define GRE_SNA                                 0x0004
00575 #define GRE_OSI_NETWORK_LAYER                   0x00FE
00576 #define GRE_PUP                                 0x0200
00577 #define GRE_XNS                                 0x0600
00578 #define GRE_IP                                  0x0800
00579 #define GRE_CHAOS                               0x0804
00580 #define GRE_RFC_826_ARP                         0x0806
00581 #define GRE_FRAME_RELAY_ARP                     0x0808
00582 #define GRE_VINES                               0x0BAD
00583 #define GRE_VINES_ECHO                          0x0BAE
00584 #define GRE_VINES_LOOPBACK                      0x0BAF
00585 #define GRE_DECNET                              0x6003
00586 #define GRE_TRANSPARENT_ETHERNET_BRIDGING       0x6558
00587 #define GRE_RAW_FRAME_RELAY                     0x6559
00588 #define GRE_APOLLO_DOMAIN                       0x8019
00589 #define GRE_ETHERTALK                           0x809B
00590 #define GRE_NOVELL_IPX                          0x8137
00591 #define GRE_RFC_1144_TCP_IP_COMPRESSION         0x876B
00592 #define GRE_IP_AUTONOMOUS_SYSTEMS               0x876C
00593 #define GRE_SECURE_DATA                         0x876D
00594 #define GRE_PPP                                 0x880b /* taken from RFC 2637 */
00595 
00596     union {
00597     struct {
00598         u_int16_t sum;  /* optional */
00599         u_int16_t offset;    /* optional */
00600         u_int32_t key;        /* optional */
00601         u_int32_t seq;        /* optional */
00602     } _gre;
00603 
00604     struct {
00605         u_int16_t payload_s; /* optional */
00606         u_int16_t callID;    /* optional */
00607         u_int32_t seq;        /* optional */
00608         u_int32_t ack;        /* optional */
00609     } _egre;
00610     }_data;
00611 
00612 #define gre_sum _data._gre.sum
00613 #define gre_offset _data._gre.offset
00614 #define gre_key _data._gre.key
00615 #define gre_seq _data._gre.seq
00616 
00617 #define egre_payload_s _data._egre.payload_s
00618 #define egre_callID _data._egre.callID
00619 #define egre_seq _data._egre.seq
00620 #define egre_ack _data._egre.ack
00621 };
00622 
00623 
00624 #ifndef IPPROTO_GRE
00625 #define IPPROTO_GRE 47
00626 #endif
00627 
00628 /*
00629  * Source Route Entries (SRE)
00630  * This is used for GRE as the Routing field is a list of SREs - RFC 1701
00631  * Base header size: 4 bytes
00632  */
00633 struct libnet_gre_sre_hdr
00634 {
00635     u_int16_t af;  /* address familly */
00636     u_int8_t sre_offset;
00637     u_int8_t sre_length;
00638     u_int8_t *routing;
00639 };
00640 
00641 
00642 /*
00643  *  IPv4 header
00644  *  Internet Protocol, version 4
00645  *  Static header size: 20 bytes
00646  */
00647 struct libnet_ipv4_hdr
00648 {
00649 #if (LIBNET_LIL_ENDIAN)
00650     u_int8_t ip_hl:4,      /* header length */
00651            ip_v:4;         /* version */
00652 #endif
00653 #if (LIBNET_BIG_ENDIAN)
00654     u_int8_t ip_v:4,       /* version */
00655            ip_hl:4;        /* header length */
00656 #endif
00657     u_int8_t ip_tos;       /* type of service */
00658 #ifndef IPTOS_LOWDELAY
00659 #define IPTOS_LOWDELAY      0x10
00660 #endif
00661 #ifndef IPTOS_THROUGHPUT
00662 #define IPTOS_THROUGHPUT    0x08
00663 #endif
00664 #ifndef IPTOS_RELIABILITY
00665 #define IPTOS_RELIABILITY   0x04
00666 #endif
00667 #ifndef IPTOS_LOWCOST
00668 #define IPTOS_LOWCOST       0x02
00669 #endif
00670     u_int16_t ip_len;         /* total length */
00671     u_int16_t ip_id;          /* identification */
00672     u_int16_t ip_off;
00673 #ifndef IP_RF
00674 #define IP_RF 0x8000        /* reserved fragment flag */
00675 #endif
00676 #ifndef IP_DF
00677 #define IP_DF 0x4000        /* dont fragment flag */
00678 #endif
00679 #ifndef IP_MF
00680 #define IP_MF 0x2000        /* more fragments flag */
00681 #endif 
00682 #ifndef IP_OFFMASK
00683 #define IP_OFFMASK 0x1fff   /* mask for fragmenting bits */
00684 #endif
00685     u_int8_t ip_ttl;          /* time to live */
00686     u_int8_t ip_p;            /* protocol */
00687     u_int16_t ip_sum;         /* checksum */
00688     struct in_addr ip_src, ip_dst; /* source and dest address */
00689 };
00690 
00691 /*
00692  *  IP options
00693  */
00694 #ifndef IPOPT_EOL
00695 #define IPOPT_EOL       0   /* end of option list */
00696 #endif
00697 #ifndef IPOPT_NOP
00698 #define IPOPT_NOP       1   /* no operation */
00699 #endif   
00700 #ifndef IPOPT_RR
00701 #define IPOPT_RR        7   /* record packet route */
00702 #endif
00703 #ifndef IPOPT_TS
00704 #define IPOPT_TS        68  /* timestamp */
00705 #endif
00706 #ifndef IPOPT_SECURITY
00707 #define IPOPT_SECURITY  130 /* provide s,c,h,tcc */   
00708 #endif
00709 #ifndef IPOPT_LSRR
00710 #define IPOPT_LSRR      131 /* loose source route */
00711 #endif
00712 #ifndef IPOPT_SATID
00713 #define IPOPT_SATID     136 /* satnet id */
00714 #endif
00715 #ifndef IPOPT_SSRR
00716 #define IPOPT_SSRR      137 /* strict source route */
00717 #endif
00718 
00719 struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
00723         u_int8_t   __u6_addr8[16];
00724         u_int16_t  __u6_addr16[8];
00725         u_int32_t dr16[8];
0 class="keyword">struct libnet_in6_addr
00720 {
00721     union
00722     {
0072