Ignore:
File:
1 edited

Legend:

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

    ra26b9e3 r849ed54  
    2727 */
    2828
    29 /** @addtogroup libnet
     29/** @addtogroup icmp
    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 LIBNET_ICMP_HEADER_H_
    39 #define LIBNET_ICMP_HEADER_H_
     38#ifndef __NET_ICMP_HEADER_H__
     39#define __NET_ICMP_HEADER_H__
    4040
    4141#include <sys/types.h>
    4242
    43 #include <net/in.h>
    44 #include <net/icmp_codes.h>
     43#include <in.h>
     44#include <icmp_codes.h>
    4545
    46 /** ICMP header size in bytes. */
    47 #define ICMP_HEADER_SIZE        sizeof(icmp_header_t)
     46/** ICMP header size in bytes.
     47 */
     48#define ICMP_HEADER_SIZE                        sizeof(icmp_header_t)
    4849
    4950/** Type definition of the echo specific data.
    50  * @see icmp_echo
     51 *  @see icmp_echo
    5152 */
    52 typedef struct icmp_echo icmp_echo_t;
     53typedef struct icmp_echo        icmp_echo_t;
    5354
    5455/** Type definition of the echo specific data pointer.
    55  * @see icmp_echo
     56 *  @see icmp_echo
    5657 */
    57 typedef icmp_echo_t *icmp_echo_ref;
     58typedef icmp_echo_t *           icmp_echo_ref;
    5859
    59 /** Echo specific data. */
    60 struct icmp_echo {
    61         /** Message idintifier. */
     60/** Echo specific data.
     61 */
     62struct icmp_echo{
     63        /** Message idintifier.
     64         */
    6265        icmp_param_t identifier;
    63         /** Message sequence number. */
     66        /** Message sequence number.
     67         */
    6468        icmp_param_t sequence_number;
    6569} __attribute__ ((packed));
    6670
    6771/** Type definition of the internet control message header.
    68  * @see icmp_header
     72 *  @see icmp_header
    6973 */
    70 typedef struct icmp_header icmp_header_t;
     74typedef struct icmp_header      icmp_header_t;
    7175
    7276/** Type definition of the internet control message header pointer.
    73  * @see icmp_header
     77 *  @see icmp_header
    7478 */
    75 typedef icmp_header_t *icmp_header_ref;
     79typedef icmp_header_t *         icmp_header_ref;
    7680
    77 /** Internet control message header. */
    78 struct icmp_header {
    79         /** The type of the message. */
     81/** Internet control message header.
     82 */
     83struct icmp_header{
     84        /** The type of the message.
     85         */
    8086        uint8_t type;
    81        
    82         /**
    83          * The error code for the datagram reported by the ICMP message.
    84          * The interpretation is dependent on the message type.
     87        /** The error code for the datagram reported by the ICMP message.
     88         *  The interpretation is dependent on the message type.
    8589         */
    8690        uint8_t code;
    87        
    88         /**
    89          * The checksum is the 16-bit ones's complement of the one's complement
    90          * sum of the ICMP message starting with the ICMP Type. For computing
    91          * the checksum, the checksum field should be zero. If the checksum does
    92          * not match the contents, the datagram is discarded.
     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.
    9394         */
    9495        uint16_t checksum;
    95 
    96         /** Message specific data. */
    97         union {
    98                 /** Echo specific data. */
     96        /** Message specific data.
     97         */
     98        union{
     99                /** Echo specific data.
     100                 */
    99101                icmp_echo_t  echo;
    100                 /** Proposed gateway value. */
     102                /** Proposed gateway value.
     103                 */
    101104                in_addr_t gateway;
    102                
    103                 /** Fragmentation needed specific data. */
    104                 struct {
    105                         /** Reserved field. Must be zero. */
     105                /** Fragmentation needed specific data.
     106                 */
     107                struct{
     108                        /** Reserved field.
     109                         *  Must be zero.
     110                         */
    106111                        icmp_param_t reserved;
    107                         /** Proposed MTU. */
     112                        /** Proposed MTU.
     113                         */
    108114                        icmp_param_t mtu;
    109115                } frag;
    110                
    111                 /** Parameter problem specific data. */
    112                 struct {
    113                         /** Problem pointer. */
     116                /** Parameter problem specific data.
     117                 */
     118                struct{
     119                        /** Problem pointer.
     120                         */
    114121                        icmp_param_t pointer;
    115                         /** Reserved field. Must be zero. */
     122                        /** Reserved field.
     123                         *  Must be zero.
     124                         */
    116125                        icmp_param_t reserved;
    117126                } param;
Note: See TracChangeset for help on using the changeset viewer.