diff options
author | David Doan <daviddoan@Davids-MacBook-Pro-70.local> | 2023-10-02 19:22:21 -0400 |
---|---|---|
committer | David Doan <daviddoan@Davids-MacBook-Pro-70.local> | 2023-10-02 19:22:21 -0400 |
commit | 7bb2015a1f2de7a31c3f2b3092a574602a2a3d53 (patch) | |
tree | 828a1c1ac6237bed4db915b6e96fb29e735fea0f /cmd | |
parent | 18ff290bd2545a5a681d047a70576d694a9ab20b (diff) |
initializations
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/pkg/protocol.go | 66 | ||||
-rw-r--r-- | cmd/vhost/main.go | 17 | ||||
-rw-r--r-- | cmd/vrouter/main.go | 17 |
3 files changed, 100 insertions, 0 deletions
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 +} diff --git a/cmd/vhost/main.go b/cmd/vhost/main.go new file mode 100644 index 0000000..82b8195 --- /dev/null +++ b/cmd/vhost/main.go @@ -0,0 +1,17 @@ +package main + +import ( + "bufio" + "fmt" + "os" +) + +func main() { + + scanner := bufio.NewScanner(os.Stdin) + + for scanner.Scan() { + line := scanner.Text() + fmt.Println(line) + } +}
\ No newline at end of file diff --git a/cmd/vrouter/main.go b/cmd/vrouter/main.go new file mode 100644 index 0000000..82b8195 --- /dev/null +++ b/cmd/vrouter/main.go @@ -0,0 +1,17 @@ +package main + +import ( + "bufio" + "fmt" + "os" +) + +func main() { + + scanner := bufio.NewScanner(os.Stdin) + + for scanner.Scan() { + line := scanner.Text() + fmt.Println(line) + } +}
\ No newline at end of file |