11package core
22
33import (
4+ "fmt"
45 "net/netip"
56
67 "github.com/encodeous/nylon/polyamide/conn"
@@ -18,6 +19,7 @@ const (
1819
1920func (n * Nylon ) InstallTC (s * state.State ) {
2021 r := Get [* NylonRouter ](s )
22+ t := Get [* NylonTrace ](s )
2123
2224 if state .DBG_trace_tc {
2325 n .Device .InstallFilter (func (dev * device.Device , packet * device.TCElement ) (device.TCAction , error ) {
@@ -33,7 +35,7 @@ func (n *Nylon) InstallTC(s *state.State) {
3335 peer != nil &&
3436 src != netip .IPv4Unspecified () && src != netip .IPv6Unspecified () &&
3537 dst != netip .IPv4Unspecified () && dst != netip .IPv6Unspecified () {
36- dev . Log . Verbosef ("Unhandled TC packet: %v -> %v, peer %s" , packet .GetSrc (), packet .GetDst (), peer )
38+ t . Submit ( fmt . Sprintf ("Unhandled TC packet: %v -> %v, peer %s\n " , packet .GetSrc (), packet .GetDst (), peer ) )
3739 }
3840 }
3941 return device .TcPass , nil
@@ -56,7 +58,7 @@ func (n *Nylon) InstallTC(s *state.State) {
5658 if ok && ! packet .Incoming () {
5759 packet .ToPeer = entry .Peer
5860 if state .DBG_trace_tc {
59- dev . Log . Verbosef ("Fwd packet: %v -> %v, via %s" , packet .GetSrc (), packet .GetDst (), entry .Nh )
61+ t . Submit ( fmt . Sprintf ("Fwd packet: %v -> %v, via %s\n " , packet .GetSrc (), packet .GetDst (), entry .Nh ) )
6062 }
6163 return device .TcForward , nil
6264 }
@@ -69,7 +71,7 @@ func (n *Nylon) InstallTC(s *state.State) {
6971 if ok {
7072 packet .ToPeer = entry .Peer
7173 if state .DBG_trace_tc {
72- dev . Log . Verbosef ("Fwd packet: %v -> %v, via %s" , packet .GetSrc (), packet .GetDst (), entry .Nh )
74+ t . Submit ( fmt . Sprintf ("Fwd packet: %v -> %v, via %s\n " , packet .GetSrc (), packet .GetDst (), entry .Nh ) )
7375 }
7476 return device .TcForward , nil
7577 }
@@ -87,7 +89,7 @@ func (n *Nylon) InstallTC(s *state.State) {
8789 }
8890 if ttl == 0 {
8991 if state .DBG_trace_tc {
90- dev . Log . Verbosef ("TTL Expired: %v -> %v, via %s " , packet .GetSrc (), packet .GetDst ())
92+ t . Submit ( fmt . Sprintf ("TTL Expired: %v -> %v\n " , packet .GetSrc (), packet .GetDst () ))
9193 }
9294 return device .TcBounce , nil
9395 }
@@ -103,6 +105,9 @@ func (n *Nylon) InstallTC(s *state.State) {
103105 entry , ok := r .ExitTable .Lookup (packet .GetDst ())
104106 // we should only accept packets destined to us, but not our passive clients
105107 if ok && entry .Nh == s .Id {
108+ if state .DBG_trace_tc {
109+ t .Submit (fmt .Sprintf ("Exit: %v -> %v\n " , packet .GetSrc (), packet .GetDst ()))
110+ }
106111 //dev.Log.Verbosef("BounceCur packet: %v -> %v", packet.GetSrc(), packet.GetDst())
107112 return device .TcBounce , nil
108113 }
0 commit comments