From ae33cc6557790a502a01b380b0926944ca2f3cfa Mon Sep 17 00:00:00 2001 From: Miguel Date: Wed, 26 Sep 2018 10:22:37 +0200 Subject: ntp and udp --- net/inet.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'net/inet.c') diff --git a/net/inet.c b/net/inet.c index 67895d5..88698c5 100644 --- a/net/inet.c +++ b/net/inet.c @@ -1,4 +1,8 @@ #include "inet.h" +#include "icmp.h" +#include "kmalloc.h" +#include "udp.h" +#include "ntp.h" uint16_t ntohs(uint16_t val) { @@ -36,3 +40,21 @@ uint16_t checksum(void *addr, int count) return ~sum; } + +bool net_packet(struct netdev *dev) +{ + uint32_t packet=kballoc(1)+4096; // we start one byte after the end; + // + uint32_t addr=(144)+(76<<8)+(106<<16)+(46<<24); + uint32_t google_time=216+(239<<8)+(35<<16)+(0<<24); + // this should of course be filled dynamically! + //uint32_t pos=icmp_ping(dev,addr,packet,packet); // create ping packet and get new position; + //uint32_t pos=udp_generic(dev, addr, 666, 123, packet,packet); + uint32_t pos=ntp_generic(dev, google_time, 6666, 123, packet,packet); + + // + dev->transmit(pos,(packet-pos)); + + kbfree(packet-4096); // TODO: take care it is not overwritten before transmitted! + return true; +} -- cgit v1.2.3