A stack which works with or without an Mbed os library. Provides IPv4 or IPv6 with a full 1500 byte buffer.

Dependents:   oldheating gps motorhome heating

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ip4hdr.h Source File

ip4hdr.h

00001 #include <stdbool.h>
00002 #include <stdint.h>
00003 
00004 extern char* Ip4HdrPtrVersionIhl (char* pPacket);
00005 extern char* Ip4HdrPtrTos        (char* pPacket);
00006 extern char* Ip4HdrPtrLength     (char* pPacket);
00007 extern char* Ip4HdrPtrId         (char* pPacket);
00008 extern char* Ip4HdrPtrFragInfo   (char* pPacket);
00009 extern char* Ip4HdrPtrTtl        (char* pPacket);
00010 extern char* Ip4HdrPtrProtocol   (char* pPacket);
00011 extern char* Ip4HdrPtrChecksum   (char* pPacket);
00012 extern char* Ip4HdrPtrSrc        (char* pPacket);
00013 extern char* Ip4HdrPtrDst        (char* pPacket);
00014 extern const int IP4_HEADER_LENGTH;
00015 
00016 extern uint8_t  Ip4HdrGetVersion   (char* pPacket);
00017 extern int      Ip4HdrGetHeaderLen (char* pPacket);
00018 extern uint8_t  Ip4HdrGetTos       (char* pPacket);
00019 extern uint16_t Ip4HdrGetLength    (char* pPacket);
00020 extern uint16_t Ip4HdrGetId        (char* pPacket);
00021 extern uint16_t Ip4HdrGetFragOffset(char* pPacket);
00022 extern bool     Ip4HdrGetDontFrag  (char* pPacket);
00023 extern bool     Ip4HdrGetMoreFrags (char* pPacket);
00024 extern uint8_t  Ip4HdrGetTtl       (char* pPacket);
00025 extern uint8_t  Ip4HdrGetProtocol  (char* pPacket);
00026 extern uint16_t Ip4HdrGetChecksum  (char* pPacket);
00027 extern uint32_t Ip4HdrGetSrc       (char* pPacket);
00028 extern uint32_t Ip4HdrGetDst       (char* pPacket);
00029 
00030 extern void Ip4HdrSetVersion    (char* pPacket, uint8_t  value);
00031 extern void Ip4HdrSetHeaderLen  (char* pPacket, int      value);
00032 extern void Ip4HdrSetTos        (char* pPacket, uint8_t  value);
00033 extern void Ip4HdrSetLength     (char* pPacket, uint16_t value);
00034 extern void Ip4HdrSetId         (char* pPacket, uint16_t value);
00035 extern void Ip4HdrSetFragInfo   (char* pPacket, uint16_t value);
00036 extern void Ip4HdrSetFragOffset (char* pPacket, uint16_t value);
00037 extern void Ip4HdrSetDontFrag   (char* pPacket, bool     value);
00038 extern void Ip4HdrSetMoreFrags  (char* pPacket, bool     value);
00039 extern void Ip4HdrSetTtl        (char* pPacket, uint8_t  value);
00040 extern void Ip4HdrSetProtocol   (char* pPacket, uint8_t  value);
00041 extern void Ip4HdrSetChecksum   (char* pPacket, uint16_t value);
00042 extern void Ip4HdrSetSrc        (char* pPacket, uint32_t value);
00043 extern void Ip4HdrSetDst        (char* pPacket, uint32_t value);