This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a commit to branch reduce-handle-connect-time
in repository https://gitbox.apache.org/repos/asf/skywalking-rover.git
The following commit(s) were added to refs/heads/reduce-handle-connect-time by
this push:
new cc38da3 enable conntrack
cc38da3 is described below
commit cc38da3705f2d253284aef9ff71ab85050182a7d
Author: mrproliu <[email protected]>
AuthorDate: Sat Dec 28 22:27:27 2024 +0800
enable conntrack
---
pkg/tools/ip/conntrack.go | 48 ++++++++++++++---------------------------------
1 file changed, 14 insertions(+), 34 deletions(-)
diff --git a/pkg/tools/ip/conntrack.go b/pkg/tools/ip/conntrack.go
index e793650..243f219 100644
--- a/pkg/tools/ip/conntrack.go
+++ b/pkg/tools/ip/conntrack.go
@@ -118,47 +118,27 @@ func (c *ConnTrack) monitor0(ctx context.Context) (<-chan
error, error) {
err = c.monitorClient.RegisterFiltered(ctx, conntrack.Conntrack,
conntrack.NetlinkCtNew,
[]conntrack.ConnAttr{
{Type: conntrack.AttrOrigPortDst, Data: []byte{0x0,
0x35}, Mask: []byte{0xff, 0xff}, Negate: true}, // DstPort != 53
- }, func(c conntrack.Con) int {
- if c.Origin == nil || c.Reply == nil || c.Origin.Proto
== nil || c.Reply.Proto == nil ||
- c.Origin.Src == nil || c.Origin.Dst == nil ||
c.Origin.Proto.SrcPort == nil || c.Origin.Proto.DstPort == nil ||
- c.Reply.Src == nil || c.Reply.Dst == nil ||
c.Reply.Proto.SrcPort == nil || c.Reply.Proto.DstPort == nil {
+ }, func(con conntrack.Con) int {
+ if con.Origin == nil || con.Reply == nil ||
con.Origin.Proto == nil || con.Reply.Proto == nil ||
+ con.Origin.Src == nil || con.Origin.Dst == nil
|| con.Origin.Proto.SrcPort == nil || con.Origin.Proto.DstPort == nil ||
+ con.Reply.Src == nil || con.Reply.Dst == nil ||
con.Reply.Proto.SrcPort == nil || con.Reply.Proto.DstPort == nil {
return 0
}
- log.Infof("conntrack event: %s:%d -> %s:%d, reply:
%s:%d -> %s:%d",
- c.Origin.Src.String(), *c.Origin.Proto.SrcPort,
c.Reply.Src.String(), *c.Reply.Proto.SrcPort,
- c.Reply.Dst.String(), *c.Reply.Proto.DstPort,
c.Origin.Dst.String(), *c.Origin.Proto.DstPort)
+
+ c.monitorExpire.Set(conntrackExpireKey{
+ sourceIP: con.Origin.Src.String(),
+ destIP: con.Origin.Dst.String(),
+ sourcePort: *con.Origin.Proto.SrcPort,
+ destPort: *con.Origin.Proto.DstPort,
+ }, conntrackExpireValue{
+ realIP: con.Reply.Src.String(),
+ realPort: *con.Reply.Proto.SrcPort,
+ }, monitorExpireTime)
return 0
})
if err != nil {
return nil, err
}
-
- //// is not the first monitoring, then return(no need re monitoring the
channel)
- //if !isFirstMonitoring {
- // return errChan, nil
- //}
- //go func() {
- // for {
- // select {
- // case <-ctx.Done():
- // return
- // case e := <-c.eventChain:
- // if e.Flow.TupleOrig.Proto.DestinationPort == 53
{
- // continue
- // }
- // c.monitorExpire.Set(conntrackExpireKey{
- // sourceIP:
e.Flow.TupleOrig.IP.SourceAddress.String(),
- // destIP:
e.Flow.TupleOrig.IP.DestinationAddress.String(),
- // sourcePort:
e.Flow.TupleOrig.Proto.SourcePort,
- // destPort:
e.Flow.TupleOrig.Proto.DestinationPort,
- // }, conntrackExpireValue{
- // realIP:
e.Flow.TupleReply.IP.SourceAddress.String(),
- // realPort:
e.Flow.TupleReply.Proto.SourcePort,
- // }, monitorExpireTime)
- // }
- // }
- //}()
-
return errChan, nil
}