Message ID | 1397012499-4089-1-git-send-email-weilong.chen@linaro.org |
---|---|
State | Accepted |
Commit | 66348e4bfe63a87220f1747ac05d2ae7db494985 |
Headers | show |
On 04/09/2014 07:01 AM, Weilong Chen wrote: > Signed-off-by: Weilong Chen <weilong.chen@linaro.org> > --- > include/helper/odp_icmp.h | 98 +++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 98 insertions(+) > create mode 100644 include/helper/odp_icmp.h > > diff --git a/include/helper/odp_icmp.h b/include/helper/odp_icmp.h > new file mode 100644 > index 0000000..55d18a2 > --- /dev/null > +++ b/include/helper/odp_icmp.h > @@ -0,0 +1,98 @@ > +/* Copyright (c) 2014, Linaro Limited > + * All rights reserved. > + * > + * SPDX-License-Identifier: BSD-3-Clause > + */ > + > + > +/** > + * @file > + * > + * ODP ICMP header > + */ > + > +#ifndef ODP_ICMP_H_ > +#define ODP_ICMP_H_ > + > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +#include <odp_align.h> > +#include <odp_debug.h> > +#include <odp_byteorder.h> > + > +/** ICMP header length */ > +#define ODP_ICMPHDR_LEN 8 > + > +/** ICMP header */ > +typedef struct ODP_PACKED { > + u_int8_t type; /** message type */ > + u_int8_t code; /** type sub-code */ > + uint16be_t chksum; > + union { > + struct { > + uint16be_t id; > + uint16be_t sequence; > + } echo; /** echo datagram */ > + u_int32_t gateway; /** gateway address */ > + struct { > + uint16be_t __unused; > + uint16be_t mtu; > + } frag; /** path mtu discovery */ > + } un; > +} odp_icmphdr_t; > + > +#define ICMP_ECHOREPLY 0 /** Echo Reply */ > +#define ICMP_DEST_UNREACH 3 /** Destination Unreachable */ > +#define ICMP_SOURCE_QUENCH 4 /** Source Quench */ > +#define ICMP_REDIRECT 5 /** Redirect (change route) */ > +#define ICMP_ECHO 8 /** Echo Request */ > +#define ICMP_TIME_EXCEEDED 11 /** Time Exceeded */ > +#define ICMP_PARAMETERPROB 12 /** Parameter Problem */ > +#define ICMP_TIMESTAMP 13 /** Timestamp Request */ > +#define ICMP_TIMESTAMPREPLY 14 /** Timestamp Reply */ > +#define ICMP_INFO_REQUEST 15 /** Information Request */ > +#define ICMP_INFO_REPLY 16 /** Information Reply */ formating here > +#define ICMP_ADDRESS 17 /** Address Mask Request */ > +#define ICMP_ADDRESSREPLY 18 /** Address Mask Reply */ > +#define NR_ICMP_TYPES 18 > + > + > +/** Codes for UNREACH. */ > +#define ICMP_NET_UNREACH 0 /** Network Unreachable */ > +#define ICMP_HOST_UNREACH 1 /** Host Unreachable */ > +#define ICMP_PROT_UNREACH 2 /** Protocol Unreachable */ > +#define ICMP_PORT_UNREACH 3 /** Port Unreachable */ > +#define ICMP_FRAG_NEEDED 4 /** Fragmentation Needed/DF set */ > +#define ICMP_SR_FAILED 5 /** Source Route failed */ > +#define ICMP_NET_UNKNOWN 6 > +#define ICMP_HOST_UNKNOWN 7 > +#define ICMP_HOST_ISOLATED 8 > +#define ICMP_NET_ANO 9 > +#define ICMP_HOST_ANO 10 > +#define ICMP_NET_UNR_TOS 11 > +#define ICMP_HOST_UNR_TOS 12 > +#define ICMP_PKT_FILTERED 13 /** Packet filtered */ > +#define ICMP_PREC_VIOLATION 14 /** Precedence violation */ > +#define ICMP_PREC_CUTOFF 15 /** Precedence cut off */ > +#define NR_ICMP_UNREACH 15 /** instead of hardcoding immediate value */ formating here. Maxim. > + > +/** Codes for REDIRECT. */ > +#define ICMP_REDIR_NET 0 /** Redirect Net */ > +#define ICMP_REDIR_HOST 1 /** Redirect Host */ > +#define ICMP_REDIR_NETTOS 2 /** Redirect Net for TOS */ > +#define ICMP_REDIR_HOSTTOS 3 /** Redirect Host for TOS */ > + > +/** Codes for TIME_EXCEEDED. */ > +#define ICMP_EXC_TTL 0 /** TTL count exceeded */ > +#define ICMP_EXC_FRAGTIME 1 /** Fragment Reass time exceeded */ > + > +/** @internal Compile time assert */ > +ODP_ASSERT(sizeof(odp_icmphdr_t) == ODP_ICMPHDR_LEN, ODP_ICMPHDR_T__SIZE_ERROR); > + > +#ifdef __cplusplus > +} > +#endif > + > +#endif
+ u_int8_t type; /** message type */ + u_int8_t code; /** type sub-code */ Why are we not using "uint8_t"? + u_int32_t gateway; /** gateway address */ And shouldn't we be using "uint32be_t" here (I assume there exists a 32-bit big endian integer type). On 9 April 2014 10:03, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: > On 04/09/2014 07:01 AM, Weilong Chen wrote: > >> Signed-off-by: Weilong Chen <weilong.chen@linaro.org> >> --- >> include/helper/odp_icmp.h | 98 ++++++++++++++++++++++++++++++ >> +++++++++++++++ >> 1 file changed, 98 insertions(+) >> create mode 100644 include/helper/odp_icmp.h >> >> diff --git a/include/helper/odp_icmp.h b/include/helper/odp_icmp.h >> new file mode 100644 >> index 0000000..55d18a2 >> --- /dev/null >> +++ b/include/helper/odp_icmp.h >> @@ -0,0 +1,98 @@ >> +/* Copyright (c) 2014, Linaro Limited >> + * All rights reserved. >> + * >> + * SPDX-License-Identifier: BSD-3-Clause >> + */ >> + >> + >> +/** >> + * @file >> + * >> + * ODP ICMP header >> + */ >> + >> +#ifndef ODP_ICMP_H_ >> +#define ODP_ICMP_H_ >> + >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> +#include <odp_align.h> >> +#include <odp_debug.h> >> +#include <odp_byteorder.h> >> + >> +/** ICMP header length */ >> +#define ODP_ICMPHDR_LEN 8 >> + >> +/** ICMP header */ >> +typedef struct ODP_PACKED { >> + u_int8_t type; /** message type */ >> + u_int8_t code; /** type sub-code */ >> + uint16be_t chksum; >> + union { >> + struct { >> + uint16be_t id; >> + uint16be_t sequence; >> + } echo; /** echo datagram */ >> + u_int32_t gateway; /** gateway address */ >> + struct { >> + uint16be_t __unused; >> + uint16be_t mtu; >> + } frag; /** path mtu discovery */ >> + } un; >> +} odp_icmphdr_t; >> + >> +#define ICMP_ECHOREPLY 0 /** Echo Reply */ >> +#define ICMP_DEST_UNREACH 3 /** Destination Unreachable */ >> +#define ICMP_SOURCE_QUENCH 4 /** Source Quench */ >> +#define ICMP_REDIRECT 5 /** Redirect (change route) */ >> +#define ICMP_ECHO 8 /** Echo Request >> */ >> +#define ICMP_TIME_EXCEEDED 11 /** Time Exceeded */ >> +#define ICMP_PARAMETERPROB 12 /** Parameter Problem */ >> +#define ICMP_TIMESTAMP 13 /** Timestamp Request */ >> +#define ICMP_TIMESTAMPREPLY 14 /** Timestamp Reply */ >> +#define ICMP_INFO_REQUEST 15 /** Information Request */ >> +#define ICMP_INFO_REPLY 16 /** Information Reply >> */ >> > formating here > >> +#define ICMP_ADDRESS 17 /** Address Mask Request >> */ >> +#define ICMP_ADDRESSREPLY 18 /** Address Mask Reply */ >> +#define NR_ICMP_TYPES 18 >> + >> + >> +/** Codes for UNREACH. */ >> +#define ICMP_NET_UNREACH 0 /** Network Unreachable */ >> +#define ICMP_HOST_UNREACH 1 /** Host Unreachable */ >> +#define ICMP_PROT_UNREACH 2 /** Protocol Unreachable >> */ >> +#define ICMP_PORT_UNREACH 3 /** Port Unreachable */ >> +#define ICMP_FRAG_NEEDED 4 /** Fragmentation Needed/DF set */ >> +#define ICMP_SR_FAILED 5 /** Source Route failed */ >> +#define ICMP_NET_UNKNOWN 6 >> +#define ICMP_HOST_UNKNOWN 7 >> +#define ICMP_HOST_ISOLATED 8 >> +#define ICMP_NET_ANO 9 >> +#define ICMP_HOST_ANO 10 >> +#define ICMP_NET_UNR_TOS 11 >> +#define ICMP_HOST_UNR_TOS 12 >> +#define ICMP_PKT_FILTERED 13 /** Packet filtered */ >> +#define ICMP_PREC_VIOLATION 14 /** Precedence violation */ >> +#define ICMP_PREC_CUTOFF 15 /** Precedence cut off */ >> +#define NR_ICMP_UNREACH 15 /** instead of hardcoding >> immediate value */ >> > formating here. > > Maxim. > > + >> +/** Codes for REDIRECT. */ >> +#define ICMP_REDIR_NET 0 /** Redirect Net >> */ >> +#define ICMP_REDIR_HOST 1 /** Redirect Host >> */ >> +#define ICMP_REDIR_NETTOS 2 /** Redirect Net for TOS >> */ >> +#define ICMP_REDIR_HOSTTOS 3 /** Redirect Host for TOS */ >> + >> +/** Codes for TIME_EXCEEDED. */ >> +#define ICMP_EXC_TTL 0 /** TTL count exceeded */ >> +#define ICMP_EXC_FRAGTIME 1 /** Fragment Reass time exceeded >> */ >> + >> +/** @internal Compile time assert */ >> +ODP_ASSERT(sizeof(odp_icmphdr_t) == ODP_ICMPHDR_LEN, >> ODP_ICMPHDR_T__SIZE_ERROR); >> + >> +#ifdef __cplusplus >> +} >> +#endif >> + >> +#endif >> > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp >
Thanks, Will change u_int8_t to uint8_t and u_int32_t to uint32be_t. On 9 April 2014 16:25, Ola Liljedahl <ola.liljedahl@linaro.org> wrote: > + > > u_int8_t type; /** message type */ > + u_int8_t code; /** type sub-code */ > > Why are we not using " > > uint8_t"? > > > u_int32_t gateway; /** gateway address */ > And shouldn't we be using " > > uint32be_t" here (I assume there exists a 32-bit big endian integer type). > > > > On 9 April 2014 10:03, Maxim Uvarov <maxim.uvarov@linaro.org> wrote: > >> On 04/09/2014 07:01 AM, Weilong Chen wrote: >> >>> Signed-off-by: Weilong Chen <weilong.chen@linaro.org> >>> --- >>> include/helper/odp_icmp.h | 98 ++++++++++++++++++++++++++++++ >>> +++++++++++++++ >>> 1 file changed, 98 insertions(+) >>> create mode 100644 include/helper/odp_icmp.h >>> >>> diff --git a/include/helper/odp_icmp.h b/include/helper/odp_icmp.h >>> new file mode 100644 >>> index 0000000..55d18a2 >>> --- /dev/null >>> +++ b/include/helper/odp_icmp.h >>> @@ -0,0 +1,98 @@ >>> +/* Copyright (c) 2014, Linaro Limited >>> + * All rights reserved. >>> + * >>> + * SPDX-License-Identifier: BSD-3-Clause >>> + */ >>> + >>> + >>> +/** >>> + * @file >>> + * >>> + * ODP ICMP header >>> + */ >>> + >>> +#ifndef ODP_ICMP_H_ >>> +#define ODP_ICMP_H_ >>> + >>> +#ifdef __cplusplus >>> +extern "C" { >>> +#endif >>> + >>> +#include <odp_align.h> >>> +#include <odp_debug.h> >>> +#include <odp_byteorder.h> >>> + >>> +/** ICMP header length */ >>> +#define ODP_ICMPHDR_LEN 8 >>> + >>> +/** ICMP header */ >>> +typedef struct ODP_PACKED { >>> + u_int8_t type; /** message type */ >>> + u_int8_t code; /** type sub-code */ >>> + uint16be_t chksum; >>> + union { >>> + struct { >>> + uint16be_t id; >>> + uint16be_t sequence; >>> + } echo; /** echo datagram */ >>> + u_int32_t gateway; /** gateway address */ >>> + struct { >>> + uint16be_t __unused; >>> + uint16be_t mtu; >>> + } frag; /** path mtu discovery */ >>> + } un; >>> +} odp_icmphdr_t; >>> + >>> +#define ICMP_ECHOREPLY 0 /** Echo Reply >>> */ >>> +#define ICMP_DEST_UNREACH 3 /** Destination Unreachable >>> */ >>> +#define ICMP_SOURCE_QUENCH 4 /** Source Quench >>> */ >>> +#define ICMP_REDIRECT 5 /** Redirect (change route) >>> */ >>> +#define ICMP_ECHO 8 /** Echo Request >>> */ >>> +#define ICMP_TIME_EXCEEDED 11 /** Time Exceeded >>> */ >>> +#define ICMP_PARAMETERPROB 12 /** Parameter Problem >>> */ >>> +#define ICMP_TIMESTAMP 13 /** Timestamp Request >>> */ >>> +#define ICMP_TIMESTAMPREPLY 14 /** Timestamp Reply >>> */ >>> +#define ICMP_INFO_REQUEST 15 /** Information Request >>> */ >>> +#define ICMP_INFO_REPLY 16 /** Information Reply >>> */ >>> >> formating here >> >>> +#define ICMP_ADDRESS 17 /** Address Mask Request >>> */ >>> +#define ICMP_ADDRESSREPLY 18 /** Address Mask Reply >>> */ >>> +#define NR_ICMP_TYPES 18 >>> + >>> + >>> +/** Codes for UNREACH. */ >>> +#define ICMP_NET_UNREACH 0 /** Network Unreachable >>> */ >>> +#define ICMP_HOST_UNREACH 1 /** Host Unreachable >>> */ >>> +#define ICMP_PROT_UNREACH 2 /** Protocol Unreachable >>> */ >>> +#define ICMP_PORT_UNREACH 3 /** Port Unreachable >>> */ >>> +#define ICMP_FRAG_NEEDED 4 /** Fragmentation Needed/DF set >>> */ >>> +#define ICMP_SR_FAILED 5 /** Source Route failed >>> */ >>> +#define ICMP_NET_UNKNOWN 6 >>> +#define ICMP_HOST_UNKNOWN 7 >>> +#define ICMP_HOST_ISOLATED 8 >>> +#define ICMP_NET_ANO 9 >>> +#define ICMP_HOST_ANO 10 >>> +#define ICMP_NET_UNR_TOS 11 >>> +#define ICMP_HOST_UNR_TOS 12 >>> +#define ICMP_PKT_FILTERED 13 /** Packet filtered */ >>> +#define ICMP_PREC_VIOLATION 14 /** Precedence violation */ >>> +#define ICMP_PREC_CUTOFF 15 /** Precedence cut off */ >>> +#define NR_ICMP_UNREACH 15 /** instead of >>> hardcoding immediate value */ >>> >> formating here. >> >> Maxim. >> >> + >>> +/** Codes for REDIRECT. */ >>> +#define ICMP_REDIR_NET 0 /** Redirect Net >>> */ >>> +#define ICMP_REDIR_HOST 1 /** Redirect Host >>> */ >>> +#define ICMP_REDIR_NETTOS 2 /** Redirect Net for TOS >>> */ >>> +#define ICMP_REDIR_HOSTTOS 3 /** Redirect Host for TOS >>> */ >>> + >>> +/** Codes for TIME_EXCEEDED. */ >>> +#define ICMP_EXC_TTL 0 /** TTL count exceeded >>> */ >>> +#define ICMP_EXC_FRAGTIME 1 /** Fragment Reass time exceeded >>> */ >>> + >>> +/** @internal Compile time assert */ >>> +ODP_ASSERT(sizeof(odp_icmphdr_t) == ODP_ICMPHDR_LEN, >>> ODP_ICMPHDR_T__SIZE_ERROR); >>> + >>> +#ifdef __cplusplus >>> +} >>> +#endif >>> + >>> +#endif >>> >> >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp >> > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp > >
diff --git a/include/helper/odp_icmp.h b/include/helper/odp_icmp.h new file mode 100644 index 0000000..55d18a2 --- /dev/null +++ b/include/helper/odp_icmp.h @@ -0,0 +1,98 @@ +/* Copyright (c) 2014, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + + +/** + * @file + * + * ODP ICMP header + */ + +#ifndef ODP_ICMP_H_ +#define ODP_ICMP_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <odp_align.h> +#include <odp_debug.h> +#include <odp_byteorder.h> + +/** ICMP header length */ +#define ODP_ICMPHDR_LEN 8 + +/** ICMP header */ +typedef struct ODP_PACKED { + u_int8_t type; /** message type */ + u_int8_t code; /** type sub-code */ + uint16be_t chksum; + union { + struct { + uint16be_t id; + uint16be_t sequence; + } echo; /** echo datagram */ + u_int32_t gateway; /** gateway address */ + struct { + uint16be_t __unused; + uint16be_t mtu; + } frag; /** path mtu discovery */ + } un; +} odp_icmphdr_t; + +#define ICMP_ECHOREPLY 0 /** Echo Reply */ +#define ICMP_DEST_UNREACH 3 /** Destination Unreachable */ +#define ICMP_SOURCE_QUENCH 4 /** Source Quench */ +#define ICMP_REDIRECT 5 /** Redirect (change route) */ +#define ICMP_ECHO 8 /** Echo Request */ +#define ICMP_TIME_EXCEEDED 11 /** Time Exceeded */ +#define ICMP_PARAMETERPROB 12 /** Parameter Problem */ +#define ICMP_TIMESTAMP 13 /** Timestamp Request */ +#define ICMP_TIMESTAMPREPLY 14 /** Timestamp Reply */ +#define ICMP_INFO_REQUEST 15 /** Information Request */ +#define ICMP_INFO_REPLY 16 /** Information Reply */ +#define ICMP_ADDRESS 17 /** Address Mask Request */ +#define ICMP_ADDRESSREPLY 18 /** Address Mask Reply */ +#define NR_ICMP_TYPES 18 + + +/** Codes for UNREACH. */ +#define ICMP_NET_UNREACH 0 /** Network Unreachable */ +#define ICMP_HOST_UNREACH 1 /** Host Unreachable */ +#define ICMP_PROT_UNREACH 2 /** Protocol Unreachable */ +#define ICMP_PORT_UNREACH 3 /** Port Unreachable */ +#define ICMP_FRAG_NEEDED 4 /** Fragmentation Needed/DF set */ +#define ICMP_SR_FAILED 5 /** Source Route failed */ +#define ICMP_NET_UNKNOWN 6 +#define ICMP_HOST_UNKNOWN 7 +#define ICMP_HOST_ISOLATED 8 +#define ICMP_NET_ANO 9 +#define ICMP_HOST_ANO 10 +#define ICMP_NET_UNR_TOS 11 +#define ICMP_HOST_UNR_TOS 12 +#define ICMP_PKT_FILTERED 13 /** Packet filtered */ +#define ICMP_PREC_VIOLATION 14 /** Precedence violation */ +#define ICMP_PREC_CUTOFF 15 /** Precedence cut off */ +#define NR_ICMP_UNREACH 15 /** instead of hardcoding immediate value */ + +/** Codes for REDIRECT. */ +#define ICMP_REDIR_NET 0 /** Redirect Net */ +#define ICMP_REDIR_HOST 1 /** Redirect Host */ +#define ICMP_REDIR_NETTOS 2 /** Redirect Net for TOS */ +#define ICMP_REDIR_HOSTTOS 3 /** Redirect Host for TOS */ + +/** Codes for TIME_EXCEEDED. */ +#define ICMP_EXC_TTL 0 /** TTL count exceeded */ +#define ICMP_EXC_FRAGTIME 1 /** Fragment Reass time exceeded */ + +/** @internal Compile time assert */ +ODP_ASSERT(sizeof(odp_icmphdr_t) == ODP_ICMPHDR_LEN, ODP_ICMPHDR_T__SIZE_ERROR); + +#ifdef __cplusplus +} +#endif + +#endif
Signed-off-by: Weilong Chen <weilong.chen@linaro.org> --- include/helper/odp_icmp.h | 98 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 include/helper/odp_icmp.h