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

Committer:
andrewboyson
Date:
Tue May 09 15:39:03 2017 +0000
Revision:
15:6ca6778168b1
Parent:
13:9cd54f7db57a
Child:
35:93c39d260a83
Tidied up dns debug output

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewboyson 15:6ca6778168b1 1 #include "mbed.h"
andrewboyson 15:6ca6778168b1 2 #include "mac.h"
andrewboyson 7:b794780e33b4 3
andrewboyson 7:b794780e33b4 4 char SlaacLinkLocalIp[16];
andrewboyson 15:6ca6778168b1 5 char SlaacGlobalIp[16];
andrewboyson 7:b794780e33b4 6
andrewboyson 15:6ca6778168b1 7 void SlaacMakeGlobal(char* pPrefix)
andrewboyson 15:6ca6778168b1 8 {
andrewboyson 15:6ca6778168b1 9 memcpy(SlaacGlobalIp, pPrefix, 8);
andrewboyson 15:6ca6778168b1 10 char* p = SlaacGlobalIp + 8;
andrewboyson 15:6ca6778168b1 11 *p++ = MacLocal[0] | 0x02; //Modified EUI-64
andrewboyson 15:6ca6778168b1 12 *p++ = MacLocal[1];
andrewboyson 15:6ca6778168b1 13 *p++ = MacLocal[2];
andrewboyson 15:6ca6778168b1 14 *p++ = 0xFF;
andrewboyson 15:6ca6778168b1 15 *p++ = 0xFE;
andrewboyson 15:6ca6778168b1 16 *p++ = MacLocal[3];
andrewboyson 15:6ca6778168b1 17 *p++ = MacLocal[4];
andrewboyson 15:6ca6778168b1 18 *p++ = MacLocal[5];
andrewboyson 15:6ca6778168b1 19
andrewboyson 15:6ca6778168b1 20 }
andrewboyson 7:b794780e33b4 21 void SlaacInit()
andrewboyson 7:b794780e33b4 22 {
andrewboyson 7:b794780e33b4 23 char* p = SlaacLinkLocalIp;
andrewboyson 7:b794780e33b4 24 *p++ = 0xFE;
andrewboyson 7:b794780e33b4 25 *p++ = 0x80;
andrewboyson 7:b794780e33b4 26 *p++ = 0x00;
andrewboyson 7:b794780e33b4 27 *p++ = 0x00;
andrewboyson 7:b794780e33b4 28 *p++ = 0x00;
andrewboyson 7:b794780e33b4 29 *p++ = 0x00;
andrewboyson 7:b794780e33b4 30 *p++ = 0x00;
andrewboyson 7:b794780e33b4 31 *p++ = 0x00;
andrewboyson 13:9cd54f7db57a 32 *p++ = MacLocal[0] | 0x02; //Modified EUI-64
andrewboyson 13:9cd54f7db57a 33 *p++ = MacLocal[1];
andrewboyson 13:9cd54f7db57a 34 *p++ = MacLocal[2];
andrewboyson 7:b794780e33b4 35 *p++ = 0xFF;
andrewboyson 7:b794780e33b4 36 *p++ = 0xFE;
andrewboyson 13:9cd54f7db57a 37 *p++ = MacLocal[3];
andrewboyson 13:9cd54f7db57a 38 *p++ = MacLocal[4];
andrewboyson 13:9cd54f7db57a 39 *p++ = MacLocal[5];
andrewboyson 7:b794780e33b4 40 }