From 7bb2015a1f2de7a31c3f2b3092a574602a2a3d53 Mon Sep 17 00:00:00 2001 From: David Doan Date: Mon, 2 Oct 2023 19:22:21 -0400 Subject: initializations --- cmd/pkg/protocol.go | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 cmd/pkg/protocol.go (limited to 'cmd/pkg') diff --git a/cmd/pkg/protocol.go b/cmd/pkg/protocol.go new file mode 100644 index 0000000..84444c3 --- /dev/null +++ b/cmd/pkg/protocol.go @@ -0,0 +1,66 @@ +package pkg + +import ( + "net" + // "netip" +) + +const ( + MAX_IP_PACKET_SIZE = 1400 +) + +func Initialize(config IpConfig) (error) { + // ip config from go parser + + // initialize ip table + + // error check + + // different for router and host?? + // host + // create node interfaces? +} + +func ipRecv(data []byte) (error) { + // parse ip header + + // check ip checksum + + // check ip version + + // check ip length + + // check ip ttl + + // check ip protocol + + // check ip destination + + // check ip source + + // check forwarding table +} + +func ipForwarding(dst netip.Addr, protocolNum uint16, data []byte) (error) { + // send test packest to dst + + // lookup forwarding table + + // locally + + // not locally +} + +type HandlerFunc = func(*Packet, []interface{}) (error) { + + // do smth with packet +} + +func RegisterRecvHandler(protocolNum uint8, callbackFunc HandlerFunc) (error) { +} + +func routeRip() (error) { + // communicate with other routers + + // update forwarding table +} -- cgit v1.2.3-70-g09d2