} __attribute__((packed));
Uint8 FragOffHi; // Number of 8-byte blocks from the original start
- Uint8 TTL; // Max number of hops effectively
+ Uint8 TTL; // Max number of hops, effectively
Uint8 Protocol;
Uint16 HeaderChecksum; // One's Complement Sum of the entire header must equal zero
} __attribute__((packed));
#define IP4PROT_ICMP 1
-#define IP4PROT_TCP 6
-#define IP4PROT_UDP 17
+#define IP4PROT_TCP 6
+#define IP4PROT_UDP 17
#define IPV4_ETHERNET_ID 0x0800
// === FUNCTIONS ===
extern int IPv4_RegisterCallback(int ID, tIPCallback Callback);
+extern Uint16 IPv4_Checksum(const void *Buf, size_t Length);
+extern int IPv4_SendPacket(tInterface *Iface, tIPv4 Address, int Protocol, int ID, int Length, const void *Data);
#endif