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
ip4/ip4hdr.h@136:8a65abb0dc63, 2019-04-06 (annotated)
- Committer:
- andrewboyson
- Date:
- Sat Apr 06 11:20:20 2019 +0000
- Revision:
- 136:8a65abb0dc63
Part way through replacing __packed with byte copy access to the headers.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
andrewboyson | 136:8a65abb0dc63 | 1 | #include <stdbool.h> |
andrewboyson | 136:8a65abb0dc63 | 2 | #include <stdint.h> |
andrewboyson | 136:8a65abb0dc63 | 3 | |
andrewboyson | 136:8a65abb0dc63 | 4 | extern char* Ip4HdrPtrVersionIhl (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 5 | extern char* Ip4HdrPtrTos (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 6 | extern char* Ip4HdrPtrLength (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 7 | extern char* Ip4HdrPtrId (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 8 | extern char* Ip4HdrPtrFragInfo (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 9 | extern char* Ip4HdrPtrTtl (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 10 | extern char* Ip4HdrPtrProtocol (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 11 | extern char* Ip4HdrPtrChecksum (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 12 | extern char* Ip4HdrPtrSrc (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 13 | extern char* Ip4HdrPtrDst (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 14 | extern const int IP4_HEADER_LENGTH; |
andrewboyson | 136:8a65abb0dc63 | 15 | |
andrewboyson | 136:8a65abb0dc63 | 16 | extern uint8_t Ip4HdrGetVersion (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 17 | extern int Ip4HdrGetHeaderLen (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 18 | extern uint8_t Ip4HdrGetTos (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 19 | extern uint16_t Ip4HdrGetLength (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 20 | extern uint16_t Ip4HdrGetId (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 21 | extern uint16_t Ip4HdrGetFragOffset(char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 22 | extern bool Ip4HdrGetDontFrag (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 23 | extern bool Ip4HdrGetMoreFrags (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 24 | extern uint8_t Ip4HdrGetTtl (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 25 | extern uint8_t Ip4HdrGetProtocol (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 26 | extern uint16_t Ip4HdrGetChecksum (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 27 | extern uint32_t Ip4HdrGetSrc (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 28 | extern uint32_t Ip4HdrGetDst (char* pPacket); |
andrewboyson | 136:8a65abb0dc63 | 29 | |
andrewboyson | 136:8a65abb0dc63 | 30 | extern void Ip4HdrSetVersion (char* pPacket, uint8_t value); |
andrewboyson | 136:8a65abb0dc63 | 31 | extern void Ip4HdrSetHeaderLen (char* pPacket, int value); |
andrewboyson | 136:8a65abb0dc63 | 32 | extern void Ip4HdrSetTos (char* pPacket, uint8_t value); |
andrewboyson | 136:8a65abb0dc63 | 33 | extern void Ip4HdrSetLength (char* pPacket, uint16_t value); |
andrewboyson | 136:8a65abb0dc63 | 34 | extern void Ip4HdrSetId (char* pPacket, uint16_t value); |
andrewboyson | 136:8a65abb0dc63 | 35 | extern void Ip4HdrSetFragInfo (char* pPacket, uint16_t value); |
andrewboyson | 136:8a65abb0dc63 | 36 | extern void Ip4HdrSetFragOffset (char* pPacket, uint16_t value); |
andrewboyson | 136:8a65abb0dc63 | 37 | extern void Ip4HdrSetDontFrag (char* pPacket, bool value); |
andrewboyson | 136:8a65abb0dc63 | 38 | extern void Ip4HdrSetMoreFrags (char* pPacket, bool value); |
andrewboyson | 136:8a65abb0dc63 | 39 | extern void Ip4HdrSetTtl (char* pPacket, uint8_t value); |
andrewboyson | 136:8a65abb0dc63 | 40 | extern void Ip4HdrSetProtocol (char* pPacket, uint8_t value); |
andrewboyson | 136:8a65abb0dc63 | 41 | extern void Ip4HdrSetChecksum (char* pPacket, uint16_t value); |
andrewboyson | 136:8a65abb0dc63 | 42 | extern void Ip4HdrSetSrc (char* pPacket, uint32_t value); |
andrewboyson | 136:8a65abb0dc63 | 43 | extern void Ip4HdrSetDst (char* pPacket, uint32_t value); |