aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2023-10-22 09:32:06 -0400
committersotech117 <michael_foiani@brown.edu>2023-10-22 09:32:06 -0400
commite333100499904a35126dd70eea58802ed9761435 (patch)
tree2733d58de1f086fa08dde87fe30b597d5f747376
parent0e9b4d3c70b0244299706da0992ca0306ce033de (diff)
fix multiple send bug
-rw-r--r--cmd/vhost/main.go6
-rw-r--r--cmd/vrouter/main.go5
-rwxr-xr-xvhostbin3100381 -> 3100397 bytes
-rwxr-xr-xvrouterbin3100445 -> 3100405 bytes
4 files changed, 5 insertions, 6 deletions
diff --git a/cmd/vhost/main.go b/cmd/vhost/main.go
index f3bf6ab..549b1de 100644
--- a/cmd/vhost/main.go
+++ b/cmd/vhost/main.go
@@ -60,9 +60,9 @@ func main() {
hop, err := ipstack.LongestPrefix(netip.MustParseAddr(ipAddr))
myAddr := hop.Interface.IpPrefix.Addr()
for _, neighbor := range ipstack.GetNeighbors()[hop.Interface.Name] {
- if neighbor.VipAddr == hop.VIP ||
- neighbor.VipAddr == netip.MustParseAddr(ipAddr) ||
- hop.Type == "S" {
+ // TODO: fix multiple send bug here on static route
+ if neighbor.VipAddr == netip.MustParseAddr(ipAddr) ||
+ neighbor.VipAddr == hop.VIP && hop.Type == "S" {
err = ipstack.SendIP(&myAddr, neighbor, ipstack.TEST_PROTOCOL, messageToSendBytes, ipAddr, nil)
if err != nil {
fmt.Println(err)
diff --git a/cmd/vrouter/main.go b/cmd/vrouter/main.go
index 59e2816..ec9a891 100644
--- a/cmd/vrouter/main.go
+++ b/cmd/vrouter/main.go
@@ -78,9 +78,8 @@ func main() {
}
myAddr := hop.Interface.IpPrefix.Addr()
for _, neighbor := range ipstack.GetNeighbors()[hop.Interface.Name] {
- if neighbor.VipAddr == hop.VIP ||
- neighbor.VipAddr == netip.MustParseAddr(ipAddr) ||
- hop.Type == "S" {
+ if neighbor.VipAddr == netip.MustParseAddr(ipAddr) ||
+ neighbor.VipAddr == hop.VIP && hop.Type == "S" {
err = ipstack.SendIP(&myAddr, neighbor, ipstack.TEST_PROTOCOL, messageToSendBytes, ipAddr, nil)
if err != nil {
fmt.Println(err)
diff --git a/vhost b/vhost
index 11a27ab..38a0147 100755
--- a/vhost
+++ b/vhost
Binary files differ
diff --git a/vrouter b/vrouter
index cf21489..e0aabbf 100755
--- a/vrouter
+++ b/vrouter
Binary files differ