Ignore:
File:
1 edited

Legend:

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

    r88a1bb9 r753bca3  
    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>
     
    4444#include <net/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
    54 /** Echo specific data. */
    55 struct icmp_echo {
    56         /** Message idintifier. */
     55/** Type definition of the echo specific data pointer.
     56 *  @see icmp_echo
     57 */
     58typedef icmp_echo_t *           icmp_echo_ref;
     59
     60/** Echo specific data.
     61 */
     62struct icmp_echo{
     63        /** Message idintifier.
     64         */
    5765        icmp_param_t identifier;
    58         /** Message sequence number. */
     66        /** Message sequence number.
     67         */
    5968        icmp_param_t sequence_number;
    6069} __attribute__ ((packed));
    6170
    6271/** Type definition of the internet control message header.
    63  * @see icmp_header
     72 *  @see icmp_header
    6473 */
    65 typedef struct icmp_header icmp_header_t;
     74typedef struct icmp_header      icmp_header_t;
    6675
    67 /** Internet control message header. */
    68 struct icmp_header {
    69         /** The type of the message. */
     76/** Type definition of the internet control message header pointer.
     77 *  @see icmp_header
     78 */
     79typedef icmp_header_t *         icmp_header_ref;
     80
     81/** Internet control message header.
     82 */
     83struct icmp_header{
     84        /** The type of the message.
     85         */
    7086        uint8_t type;
    71        
    72         /**
    73          * The error code for the datagram reported by the ICMP message.
    74          * 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.
    7589         */
    7690        uint8_t code;
    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.
     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.
    8394         */
    8495        uint16_t checksum;
    85 
    86         /** Message specific data. */
    87         union {
    88                 /** Echo specific data. */
     96        /** Message specific data.
     97         */
     98        union{
     99                /** Echo specific data.
     100                 */
    89101                icmp_echo_t  echo;
    90                 /** Proposed gateway value. */
     102                /** Proposed gateway value.
     103                 */
    91104                in_addr_t gateway;
    92                
    93                 /** Fragmentation needed specific data. */
    94                 struct {
    95                         /** Reserved field. Must be zero. */
     105                /** Fragmentation needed specific data.
     106                 */
     107                struct{
     108                        /** Reserved field.
     109                         *  Must be zero.
     110                         */
    96111                        icmp_param_t reserved;
    97                         /** Proposed MTU. */
     112                        /** Proposed MTU.
     113                         */
    98114                        icmp_param_t mtu;
    99115                } frag;
    100                
    101                 /** Parameter problem specific data. */
    102                 struct {
    103                         /** Problem pointer. */
     116                /** Parameter problem specific data.
     117                 */
     118                struct{
     119                        /** Problem pointer.
     120                         */
    104121                        icmp_param_t pointer;
    105                         /** Reserved field. Must be zero. */
     122                        /** Reserved field.
     123                         *  Must be zero.
     124                         */
    106125                        icmp_param_t reserved;
    107126                } param;
Note: See TracChangeset for help on using the changeset viewer.