Changeset a26b9e3 in mainline for uspace/lib/net/include


Ignore:
Timestamp:
2010-10-23T17:43:33Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8c780dc
Parents:
626182d
Message:

Cleanup libnet ICMP interfaces.

Location:
uspace/lib/net/include
Files:
2 edited

Legend:

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

    r626182d ra26b9e3  
    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>
     
    4444#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
    5554/** Type definition of the echo specific data pointer.
    56  *  @see icmp_echo
     55 * @see icmp_echo
    5756 */
    58 typedef icmp_echo_t *           icmp_echo_ref;
     57typedef icmp_echo_t *icmp_echo_ref;
    5958
    60 /** Echo specific data.
    61  */
    62 struct icmp_echo{
    63         /** Message idintifier.
    64          */
     59/** Echo specific data. */
     60struct icmp_echo {
     61        /** Message idintifier. */
    6562        icmp_param_t identifier;
    66         /** Message sequence number.
    67          */
     63        /** Message sequence number. */
    6864        icmp_param_t sequence_number;
    6965} __attribute__ ((packed));
    7066
    7167/** Type definition of the internet control message header.
    72  *  @see icmp_header
     68 * @see icmp_header
    7369 */
    74 typedef struct icmp_header      icmp_header_t;
     70typedef struct icmp_header icmp_header_t;
    7571
    7672/** Type definition of the internet control message header pointer.
    77  *  @see icmp_header
     73 * @see icmp_header
    7874 */
    79 typedef icmp_header_t *         icmp_header_ref;
     75typedef icmp_header_t *icmp_header_ref;
    8076
    81 /** Internet control message header.
    82  */
    83 struct icmp_header{
    84         /** The type of the message.
    85          */
     77/** Internet control message header. */
     78struct icmp_header {
     79        /** The type of the message. */
    8680        uint8_t type;
    87         /** The error code for the datagram reported by the ICMP message.
    88          *  The interpretation is dependent on the message type.
     81       
     82        /**
     83         * The error code for the datagram reported by the ICMP message.
     84         * The interpretation is dependent on the message type.
    8985         */
    9086        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.
     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.
    9493         */
    9594        uint16_t checksum;
    96         /** Message specific data.
    97          */
    98         union{
    99                 /** Echo specific data.
    100                  */
     95
     96        /** Message specific data. */
     97        union {
     98                /** Echo specific data. */
    10199                icmp_echo_t  echo;
    102                 /** Proposed gateway value.
    103                  */
     100                /** Proposed gateway value. */
    104101                in_addr_t gateway;
    105                 /** Fragmentation needed specific data.
    106                  */
    107                 struct{
    108                         /** Reserved field.
    109                          *  Must be zero.
    110                          */
     102               
     103                /** Fragmentation needed specific data. */
     104                struct {
     105                        /** Reserved field. Must be zero. */
    111106                        icmp_param_t reserved;
    112                         /** Proposed MTU.
    113                          */
     107                        /** Proposed MTU. */
    114108                        icmp_param_t mtu;
    115109                } frag;
    116                 /** Parameter problem specific data.
    117                  */
    118                 struct{
    119                         /** Problem pointer.
    120                          */
     110               
     111                /** Parameter problem specific data. */
     112                struct {
     113                        /** Problem pointer. */
    121114                        icmp_param_t pointer;
    122                         /** Reserved field.
    123                          *  Must be zero.
    124                          */
     115                        /** Reserved field. Must be zero. */
    125116                        icmp_param_t reserved;
    126117                } param;
  • uspace/lib/net/include/icmp_interface.h

    r626182d ra26b9e3  
    2727 */
    2828
    29 /** @addtogroup icmp
     29/** @addtogroup libnet
    3030 *  @{
    3131 */
    3232
    33 #ifndef __NET_ICMP_INTERFACE_H__
    34 #define __NET_ICMP_INTERFACE_H__
     33#ifndef LIBNET_ICMP_INTERFACE_H_
     34#define LIBNET_ICMP_INTERFACE_H_
    3535
    3636#include <net/socket_codes.h>
     
    4646
    4747/** @name ICMP module interface
    48  *  This interface is used by other modules.
     48 * This interface is used by other modules.
    4949 */
    5050/*@{*/
    5151
    52 /** Sends the Destination Unreachable error notification packet.
    53  *  Beginning of the packet is sent as the notification packet data.
    54  *  The source and the destination addresses should be set in the original packet.
    55  *  @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
    56  *  @param[in] code The error specific code.
    57  *  @param[in] mtu The error MTU value.
    58  *  @param[in] packet The original packet.
    59  *  @returns EOK on success.
    60  *  @returns EPERM if the ICMP error notifications are disabled.
    61  *  @returns ENOMEM if there is not enough memory left.
    62  */
    63 extern int icmp_destination_unreachable_msg(int icmp_phone, icmp_code_t code, icmp_param_t mtu, packet_t packet);
    64 
    65 /** Sends the Source Quench error notification packet.
    66  *  Beginning of the packet is sent as the notification packet data.
    67  *  The source and the destination addresses should be set in the original packet.
    68  *  @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
    69  *  @param[in] packet The original packet.
    70  *  @returns EOK on success.
    71  *  @returns EPERM if the ICMP error notifications are disabled.
    72  *  @returns ENOMEM if there is not enough memory left.
    73  */
    74 extern int icmp_source_quench_msg(int icmp_phone, packet_t packet);
    75 
    76 /** Sends the Time Exceeded error notification packet.
    77  *  Beginning of the packet is sent as the notification packet data.
    78  *  The source and the destination addresses should be set in the original packet.
    79  *  @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
    80  *  @param[in] code The error specific code.
    81  *  @param[in] packet The original packet.
    82  *  @returns EOK on success.
    83  *  @returns EPERM if the ICMP error notifications are disabled.
    84  *  @returns ENOMEM if there is not enough memory left.
    85  */
    86 extern int icmp_time_exceeded_msg(int icmp_phone, icmp_code_t code, packet_t packet);
    87 
    88 /** Sends the Parameter Problem error notification packet.
    89  *  Beginning of the packet is sent as the notification packet data.
    90  *  The source and the destination addresses should be set in the original packet.
    91  *  @param[in] icmp_phone The ICMP module phone used for (semi)remote calls.
    92  *  @param[in] code The error specific code.
    93  *  @param[in] pointer The problematic parameter offset.
    94  *  @param[in] packet The original packet.
    95  *  @returns EOK on success.
    96  *  @returns EPERM if the ICMP error notifications are disabled.
    97  *  @returns ENOMEM if there is not enough memory left.
    98  */
    99 extern int icmp_parameter_problem_msg(int icmp_phone, icmp_code_t code, icmp_param_t pointer, packet_t packet);
     52extern int icmp_destination_unreachable_msg(int, icmp_code_t, icmp_param_t,
     53    packet_t);
     54extern int icmp_source_quench_msg(int, packet_t);
     55extern int icmp_time_exceeded_msg(int, icmp_code_t, packet_t);
     56extern int icmp_parameter_problem_msg(int, icmp_code_t, icmp_param_t, packet_t);
    10057
    10158/*@}*/
Note: See TracChangeset for help on using the changeset viewer.