Skip to content

Commit cc57bda

Browse files
committed
sensorapp: convert to pan
Add path policy options to command line.
1 parent 180fb75 commit cc57bda

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

sensorapp/sensorfetcher/sensorfetcher.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,16 @@
1818
package main
1919

2020
import (
21+
"context"
2122
"flag"
2223
"fmt"
2324
"log"
2425
"os"
26+
"strings"
2527

26-
"github.com/netsec-ethz/scion-apps/pkg/appnet"
28+
"inet.af/netaddr"
29+
30+
"github.com/netsec-ethz/scion-apps/pkg/pan"
2731
)
2832

2933
func check(e error) {
@@ -33,16 +37,25 @@ func check(e error) {
3337
}
3438

3539
func main() {
36-
3740
serverAddrStr := flag.String("s", "", "Server address (<ISD-AS,[IP]:port> or <hostname:port>)")
41+
interactive := flag.Bool("i", false, "Interactive path selection, prompt to choose path")
42+
sequence := flag.String("sequence", "", "Sequence of space separated hop predicates to specify path")
43+
preference := flag.String("preference", "", "Preference sorting order for paths. "+
44+
"Comma-separated list of available sorting options: "+
45+
strings.Join(pan.AvailablePreferencePolicies, "|"))
46+
3847
flag.Parse()
3948

4049
if len(*serverAddrStr) == 0 {
4150
flag.Usage()
4251
os.Exit(2)
4352
}
4453

45-
conn, err := appnet.Dial(*serverAddrStr)
54+
policy, err := pan.PolicyFromCommandline(*sequence, *preference, *interactive)
55+
check(err)
56+
serverAddr, err := pan.ResolveUDPAddr(*serverAddrStr)
57+
check(err)
58+
conn, err := pan.DialUDP(context.Background(), netaddr.IPPort{}, serverAddr, policy, nil)
4659
check(err)
4760

4861
receivePacketBuffer := make([]byte, 2500)

sensorapp/sensorserver/sensorserver.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@ package main
1919

2020
import (
2121
"bufio"
22+
"context"
2223
"flag"
2324
"log"
2425
"os"
2526
"strings"
2627
"sync"
2728

28-
"github.com/netsec-ethz/scion-apps/pkg/appnet"
29+
"inet.af/netaddr"
30+
31+
"github.com/netsec-ethz/scion-apps/pkg/pan"
2932
)
3033

3134
const (
@@ -78,13 +81,14 @@ func main() {
7881
port := flag.Uint("p", 40002, "Server Port")
7982
flag.Parse()
8083

81-
conn, err := appnet.ListenPort(uint16(*port))
84+
local := netaddr.IPPortFrom(netaddr.IP{}, uint16(*port))
85+
conn, err := pan.ListenUDP(context.Background(), local, nil)
8286
check(err)
8387

8488
receivePacketBuffer := make([]byte, 2500)
8589
sendPacketBuffer := make([]byte, 2500)
8690
for {
87-
_, clientAddress, err := conn.ReadFrom(receivePacketBuffer)
91+
_, clientAddress, path, err := conn.ReadFromVia(receivePacketBuffer)
8892
check(err)
8993

9094
// Packet received, send back response to same client
@@ -102,7 +106,7 @@ func main() {
102106
sensorValues = timeStr + "\n" + sensorValues
103107
copy(sendPacketBuffer, sensorValues)
104108

105-
_, err = conn.WriteTo(sendPacketBuffer[:len(sensorValues)], clientAddress)
109+
_, err = conn.WriteToVia(sendPacketBuffer[:len(sensorValues)], clientAddress, path)
106110
check(err)
107111
}
108112
}

0 commit comments

Comments
 (0)