Changeset 0b749a3 in mainline for uspace/lib/net/include/icmp_header.h


Ignore:
Timestamp:
2010-11-22T15:39:53Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0eddb76, aae339e9
Parents:
9a1d8ab (diff), 8cd1aa5e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge development/ changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/net/include/icmp_header.h

    r9a1d8ab r0b749a3  
    2727 */
    2828
    29 /** @addtogroup icmp
     29/** @addtogroup libnet
    3030 *  @{
    3131 */
    3232
    3333/** @file
    34  *  ICMP header definition.
    35  *  Based on the RFC~792.
     34 * ICMP header definition.
     35 * Based on the RFC 792.
    3636 */
    3737
    38 #ifndef __NET_ICMP_HEADER_H__
    39 #define __NET_ICMP_HEADER_H__
     38#ifndef LIBNET_ICMP_HEADER_H_
     39#define LIBNET_ICMP_HEADER_H_
    4040
    4141#include <sys/types.h>
    4242
    43 #include <in.h>
    44 #include <icmp_codes.h>
     43#include <net/in.h>
     44#include <net/icmp_codes.h>
    4545
    46 /** ICMP header size in bytes.
    47  */
    48 #define ICMP_HEADER_SIZE                        sizeof(icmp_header_t)
     46/** ICMP header size in bytes. */
     47#define ICMP_HEADER_SIZE        sizeof(icmp_header_t)
    4948
    5049/** Type definition of the echo specific data.
    51  *  @see icmp_echo
     50 * @see icmp_echo
    5251 */
    53 typedef struct icmp_echo        icmp_echo_t;
     52typedef struct icmp_echo icmp_echo_t;
    5453
    55 /** Type definition of the echo specific data pointer.
    56  *  @see icmp_echo
    57  */
    58 typedef icmp_echo_t *           icmp_echo_ref;
    59 
    60 /** Echo specific data.
    61  */
    62 struct icmp_echo{
    63         /** Message idintifier.
    64          */
     54/** Echo specific data. */
     55struct icmp_echo {
     56        /** Message idintifier. */
    6557        icmp_param_t identifier;
    66         /** Message sequence number.
    67          */
     58        /** Message sequence number. */
    6859        icmp_param_t sequence_number;
    6960} __attribute__ ((packed));
    7061
    7162/** Type definition of the internet control message header.
    72  *  @see icmp_header
     63 * @see icmp_header
    7364 */
    74 typedef struct icmp_header      icmp_header_t;
     65typedef struct icmp_header icmp_header_t;
    7566
    76 /** Type definition of the internet control message header pointer.
    77  *  @see icmp_header
    78  */
    79 typedef icmp_header_t *         icmp_header_ref;
    80 
    81 /** Internet control message header.
    82  */
    83 struct icmp_header{
    84         /** The type of the message.
    85          */
     67/** Internet control message header. */
     68struct icmp_header {
     69        /** The type of the message. */
    8670        uint8_t type;
    87         /** The error code for the datagram reported by the ICMP message.
    88          *  The interpretation is dependent on the message type.
     71       
     72        /**
     73         * The error code for the datagram reported by the ICMP message.
     74         * The interpretation is dependent on the message type.
    8975         */
    9076        uint8_t code;
    91         /** The checksum is the 16-bit ones's complement of the one's complement sum of the ICMP message starting with the ICMP Type.
    92      *  For computing the checksum, the checksum field should be zero.
    93          *  If the checksum does not match the contents, the datagram is discarded.
     77       
     78        /**
     79         * The checksum is the 16-bit ones's complement of the one's complement
     80         * sum of the ICMP message starting with the ICMP Type. For computing
     81         * the checksum, the checksum field should be zero. If the checksum does
     82         * not match the contents, the datagram is discarded.
    9483         */
    9584        uint16_t checksum;
    96         /** Message specific data.
    97          */
    98         union{
    99                 /** Echo specific data.
    100                  */
     85
     86        /** Message specific data. */
     87        union {
     88                /** Echo specific data. */
    10189                icmp_echo_t  echo;
    102                 /** Proposed gateway value.
    103                  */
     90                /** Proposed gateway value. */
    10491                in_addr_t gateway;
    105                 /** Fragmentation needed specific data.
    106                  */
    107                 struct{
    108                         /** Reserved field.
    109                          *  Must be zero.
    110                          */
     92               
     93                /** Fragmentation needed specific data. */
     94                struct {
     95                        /** Reserved field. Must be zero. */
    11196                        icmp_param_t reserved;
    112                         /** Proposed MTU.
    113                          */
     97                        /** Proposed MTU. */
    11498                        icmp_param_t mtu;
    11599                } frag;
    116                 /** Parameter problem specific data.
    117                  */
    118                 struct{
    119                         /** Problem pointer.
    120                          */
     100               
     101                /** Parameter problem specific data. */
     102                struct {
     103                        /** Problem pointer. */
    121104                        icmp_param_t pointer;
    122                         /** Reserved field.
    123                          *  Must be zero.
    124                          */
     105                        /** Reserved field. Must be zero. */
    125106                        icmp_param_t reserved;
    126107                } param;
Note: See TracChangeset for help on using the changeset viewer.