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

ip6/ip6addr.h

Committer:
andrewboyson
Date:
2020-12-16
Revision:
172:9bc3c7b2cca1
Parent:
171:f708d6776752
Child:
176:7eb916c22084

File content as of revision 172:9bc3c7b2cca1:

#include <stdint.h>

extern int  Ip6AddrToString(const char* ip, int size, char* text);
extern int  Ip6AddrLog     (const char* ip);
extern int  Ip6AddrHttp    (const char* ip);

extern bool     Ip6AddrIsSame (const char* ipA, const char* ipB);
extern bool     Ip6AddrIsEmpty(const char* ip);
extern void     Ip6AddrCopy   (char* ipTo, const char* ipFrom);
extern void     Ip6AddrClear  (char* ip);
extern void     Ip6AddrFromIp4(char* ip6, uint32_t ip4);
extern uint32_t Ip6AddrToIp4  (char* ip6);


extern bool Ip6AddrIsIp4        (const char *p);
extern bool Ip6AddrIsLinkLocal  (const char* p);
extern bool Ip6AddrIsUniqueLocal(const char* p);
extern bool Ip6AddrIsGlobal     (const char* p);
extern bool Ip6AddrIsSolicited  (const char* p);
extern bool Ip6AddrIsMulticast  (const char *p);
extern bool Ip6AddrIsSameGroup  (const char* pA, const char* pB);

extern const char Ip6AddrAllNodes  [];
extern const char Ip6AddrAllRouters[];
extern const char Ip6AddrMdns      [];
extern const char Ip6AddrLlmnr     [];
extern const char Ip6AddrNtp       [];

extern void Ip6AddrFromDest (int dest , char* pDstIp);

#define SCOPE_NONE         0
#define SCOPE_LINK_LOCAL   1
#define SCOPE_UNIQUE_LOCAL 2
#define SCOPE_GLOBAL       3