Skip to content

Commit

Permalink
improve architecture diagram
Browse files Browse the repository at this point in the history
  • Loading branch information
ainghazal committed Jan 2, 2024
1 parent 4deefc3 commit 5e157da
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 4 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
minivpn
openvpn
./obfs4vpn
./vpnping
./geturl
.vscode

ndt7
*.swp
*.swo
Expand Down
49 changes: 49 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,52 @@ stateDiagram
nioDown --> internet: conn.Write() [!!!]
internet --> nioUp: conn.Read() [!!!]
```

## New architecture, with boxes

```mermaid
graph TB
INTERNET -- conn.Read --> networkio.moveUpWorker
networkio.moveDownWorker -- conn.Write --> INTERNET
subgraph tun
TUN.Write
TUN.Read
end
subgraph packetmuxer
packetmuxer.moveUpWorker
packetmuxer.moveDownWorker
end
subgraph reliable
packetmuxer.moveUpWorker -- chan *model.Packet --> reliable.moveUpWorker
reliable.moveDownWorker -- chan *model.Packet --> packetmuxer.moveDownWorker
reliable.moveUpWorker -- chan *model.Packet [ACK] --> packetmuxer.moveDownWorker
end
subgraph controlChannel
reliable.moveUpWorker -- chan *model.Packet --> controlchannel.moveUpWorker
controlchannel.moveDownWorker -- chan *model.Packet --> reliable.moveDownWorker
end
subgraph tlsstate
controlchannel.moveUpWorker -- chan *Notification --> tlsstate.Worker
controlchannel.moveUpWorker -- chan *TLSRecord --> tlsstate.Worker
packetmuxer.moveUpWorker -- chan *Notification --> tlsstate.Worker
tlsstate.Worker -- chan *TLSRecord --> controlchannel.moveDownWorker
end
subgraph datachannel
datachannel.moveUpWorker --> TUN.Read
TUN.Write --> datachannel.moveDownWorker
packetmuxer.moveUpWorker -- chan *model.Packet --> datachannel.moveUpWorker
datachannel.moveDownWorker -- chan *model.Packet --> packetmuxer.moveDownWorker
end
subgraph networkIO
networkio.moveUpWorker -- chan []byte--> packetmuxer.moveUpWorker
packetmuxer.moveDownWorker -- chan []byte --> networkio.moveDownWorker
end
```
7 changes: 4 additions & 3 deletions cmd/handshake/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,22 @@ import (
"time"

"github.com/apex/log"
"github.com/ooni/minivpn/openvpn"
"github.com/minivpn/internal/model"
"github.com/minivpn/internal/networkio"
)

func main() {
log.Info("C_NOTHING")

// read the configuation file
options, err := openvpn.ReadConfigFile(os.Args[1])
options, err := model.ReadConfigFile(os.Args[1])
if err != nil {
log.WithError(err).Fatal("NewOptionsFromFilePath")
}
log.Infof("parsed options: %s", options.ServerOptionsString())

// connect to the server
dialer := openvpn.NewDialer(log.Log, &net.Dialer{})
dialer := networkio.NewDialer(log.Log, &net.Dialer{})
ctx := context.Background()
endpoint := net.JoinHostPort(options.Remote, options.Port)
conn, err := dialer.DialContext(ctx, options.Proto.String(), endpoint)
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/ooni/minivpn

go 1.18
go 1.20

// pinning for backwards-incompatible change
// replace gitlab.com/yawning/obfs4.git v0.0.0-20220204003609-77af0cba934d => gitlab.com/yawning/obfs4.git v0.0.0-20210511220700-e330d1b7024b
Expand Down

0 comments on commit 5e157da

Please sign in to comment.