diff --git a/go.mod b/go.mod index 1f1817136c4..0d9c4330a85 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/stretchr/testify v1.6.1 github.com/ti-mo/conntrack v0.3.0 github.com/vishvananda/netlink v1.1.0 - github.com/vmware/go-ipfix v0.5.2 + github.com/vmware/go-ipfix v0.5.3 golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 golang.org/x/mod v0.4.0 diff --git a/go.sum b/go.sum index 77589f02762..9c6ff084ea4 100644 --- a/go.sum +++ b/go.sum @@ -50,7 +50,9 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/sarama v1.27.2 h1:1EyY1dsxNDUQEv0O/4TsjosHI2CgB1uo9H/v56xzTxc= github.com/Shopify/sarama v1.27.2/go.mod h1:g5s5osgELxgM+Md9Qni9rzo7Rbt+vvFQI4bt/Mc93II= +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/TomCodeLV/OVSDB-golang-lib v0.0.0-20200116135253-9bbdfadcd881 h1:6PUwmG2qZd1LNoe1WsdBmoJP2PseuC2P4QBGPTz6mQc= github.com/TomCodeLV/OVSDB-golang-lib v0.0.0-20200116135253-9bbdfadcd881/go.mod h1:J623KtHQCavhT3jhFh0wg5i6QQRdnsAxAlBrOY0TUMw= @@ -164,8 +166,11 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20190911111923-ecfe977594f1 h1:yY9rWGoXv1U5pl4gxqlULARMQD7x0QG85lqEXTWysik= @@ -185,7 +190,9 @@ github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwo github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/frankban/quicktest v1.10.2 h1:19ARM85nVi4xH7xPXuc5eM/udya5ieh7b/Sv+d844Tk= github.com/frankban/quicktest v1.10.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= @@ -273,6 +280,7 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -290,6 +298,7 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -348,6 +357,7 @@ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerX github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -366,6 +376,7 @@ github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -388,6 +399,7 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg= github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -395,6 +407,7 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= @@ -479,6 +492,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI= github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pion/dtls/v2 v2.0.3 h1:3qQ0s4+TXD00rsllL8g8KQcxAs+Y/Z6oz618RXX6p14= github.com/pion/dtls/v2 v2.0.3/go.mod h1:TUjyL8bf8LH95h81Xj7kATmzMRt29F/4lxpIPj2Xe4Y= @@ -523,6 +537,7 @@ github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakelkar/gonetsh v0.0.0-20210226024844-dfffed138500 h1:TJ99mSkY9CTjL/FXiJZ6i8xWy7gasANjR0J/xhj4PzE= github.com/rakelkar/gonetsh v0.0.0-20210226024844-dfffed138500/go.mod h1:MkEXf5yV9DRTy8TfpWdvMuCTkxajNE/0tn9pvZ6ikDw= +github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= @@ -599,8 +614,8 @@ github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYp github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df h1:OviZH7qLw/7ZovXvuNyL3XQl8UFofeikI1NW1Gypu7k= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vmware/go-ipfix v0.5.2 h1:5VIW+HoJoq2i/mhN8ErNSYXNpjbtALImLIH72xh2Afc= -github.com/vmware/go-ipfix v0.5.2/go.mod h1:rMDcGc5pEmG+wT2grK5ZgvsF1EOdxqHDnNkB/kFJT78= +github.com/vmware/go-ipfix v0.5.3 h1:ZJTn5vQd6W0WWt05gm+nNFjjgbgVfUkvywdxKmWj4uM= +github.com/vmware/go-ipfix v0.5.3/go.mod h1:SF6BrZTPvoVdzgmjJvshoegBVbicn4xWlkoCNADab6E= github.com/wenyingd/ofnet v0.0.0-20210318032909-171b6795a2da h1:ragN21nQa4zKuCwR2UEbTXEAh3L2YN/Id5SCVkjjwdY= github.com/wenyingd/ofnet v0.0.0-20210318032909-171b6795a2da/go.mod h1:8mMMWAYBNUeTGXYKizOLETfN3WIbu3P5DgvS2jiXKdI= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= @@ -907,8 +922,9 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -925,10 +941,15 @@ gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKW gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw= gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM= gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= +gopkg.in/jcmturner/goidentity.v3 v3.0.0 h1:1duIyWiTaYvVx3YX2CYtpJbUFd7/UuPYCfgXtQ3VTbI= gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= +gopkg.in/jcmturner/gokrb5.v7 v7.5.0 h1:a9tsXlIDD9SKxotJMK3niV7rPZAJeX2aD/0yg3qlIrg= gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= +gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU= gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= diff --git a/pkg/agent/flowexporter/connections/connections.go b/pkg/agent/flowexporter/connections/connections.go index 3afc17e04b8..9fe0ddefa2a 100644 --- a/pkg/agent/flowexporter/connections/connections.go +++ b/pkg/agent/flowexporter/connections/connections.go @@ -66,6 +66,14 @@ func (cs *connectionStore) ForAllConnectionsDo(callback flowexporter.ConnectionM return nil } +// AddConnToMap adds the connection to connections map given connection key. +// This is used only for unit tests. +func (cs *connectionStore) AddConnToMap(connKey *flowexporter.ConnectionKey, conn *flowexporter.Connection) { + cs.mutex.Lock() + defer cs.mutex.Unlock() + cs.connections[*connKey] = conn +} + func (cs *connectionStore) fillPodInfo(conn *flowexporter.Connection) { if cs.ifaceStore == nil { klog.V(4).Info("Interface store is not available to retrieve local Pods information.") diff --git a/pkg/agent/flowexporter/exporter/exporter_perf_test.go b/pkg/agent/flowexporter/exporter/exporter_perf_test.go new file mode 100644 index 00000000000..ceeeb41d82f --- /dev/null +++ b/pkg/agent/flowexporter/exporter/exporter_perf_test.go @@ -0,0 +1,224 @@ +// +build !race + +// Copyright 2021 Antrea Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package exporter + +import ( + "crypto/rand" + "flag" + "fmt" + "math/big" + "net" + "testing" + "time" + + "github.com/golang/mock/gomock" + "github.com/vmware/go-ipfix/pkg/registry" + "k8s.io/klog/v2" + + "antrea.io/antrea/pkg/agent/flowexporter" + "antrea.io/antrea/pkg/agent/flowexporter/connections" + "antrea.io/antrea/pkg/agent/flowexporter/flowrecords" +) + +const ( + testNumOfConns = 100000 + testNumOfDenyConns = 100000 + testNumOfDyingConns = 10000 + testNumOfInactiveRecords = 10000 + testNumOfIdleDenyConns = 10000 + testBufferSize = 1048 +) + +var exp *flowExporter + +var count = 0 + +/* +Sample output: + go test -test.v -run=BenchmarkExport -test.benchmem -bench=. -memprofile memprofile.out -cpuprofile profile.out + goos: linux + goarch: amd64 + pkg: antrea.io/antrea/pkg/agent/flowexporter/exporter + cpu: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz + BenchmarkExport + exporter_perf_test.go:80: + Summary: + Number of conntrack connections: 100000 + Number of dying conntrack connections: 10000 + Number of deny connections: 100000 + Number of idle deny connections: 10000 + Total connections received: 182861 + BenchmarkExport-2 1 5469929206 ns/op 656425016 B/op 17396982 allocs/op + PASS + ok antrea.io/antrea/pkg/agent/flowexporter/exporter 5.914s +*/ +func BenchmarkExport(b *testing.B) { + disableLogToStderr() + ctrl := gomock.NewController(b) + defer ctrl.Finish() + if err := setupExporter(); err != nil { + b.Fatalf("error when setting up exporter: %v", err) + } + + for n := 0; n < b.N; n++ { + exp.Export() + } + b.Logf("\nSummary:\nNumber of conntrack connections: %d\nNumber of dying conntrack connections: %d\nNumber of deny connections: %d\nNumber of idle deny connections: %d\nTotal connections received: %d\n", testNumOfConns, testNumOfDyingConns, testNumOfDenyConns, testNumOfIdleDenyConns, count) +} + +func setupExporter() error { + var err error + collectorAddr, err := startLocalServer() + if err != nil { + return err + } + + // create connection store and generate connections + conntrackConnStore := connections.NewConntrackConnectionStore(nil, flowrecords.NewFlowRecords(), nil, true, false, nil, nil, 1) + records := addConnsAndGetRecords(conntrackConnStore) + denyConnStore := connections.NewDenyConnectionStore(nil, nil) + addDenyConns(denyConnStore) + + // initialize exporting process and send templates before exporting records + exp, _ = NewFlowExporter(conntrackConnStore, records, denyConnStore, collectorAddr.String(), collectorAddr.Network(), testActiveFlowTimeout, testIdleFlowTimeout, true, false, nil, nil, false) + if err := exp.initFlowExporter(); err != nil { + return fmt.Errorf("error when initiating exporter: %v", err) + } + return err +} + +func startLocalServer() (net.Addr, error) { + udpAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:0") + if err != nil { + return nil, fmt.Errorf("error when resolving UDP address: %v", err) + } + conn, err := net.ListenUDP("udp", udpAddr) + if err != nil { + return nil, fmt.Errorf("error when creating local server: %v", err) + } + go func() { + defer conn.Close() + for { + buff := make([]byte, testBufferSize) + _, _, err := conn.ReadFromUDP(buff) + if err != nil { + return + } + count++ + } + }() + return conn.LocalAddr(), nil +} + +func addConnsAndGetRecords(connStore *connections.ConntrackConnectionStore) *flowrecords.FlowRecords { + randomNum := int(getRandomNum(int64(testNumOfConns - testNumOfDyingConns))) + records := flowrecords.NewFlowRecords() + for i := 0; i < testNumOfConns; i++ { + // create and add connection to connection store + randomNum1 := getRandomNum(255) + randomNum2 := getRandomNum(255) + src := net.ParseIP(fmt.Sprintf("192.168.%d.%d", randomNum1, randomNum2)) + dst := net.ParseIP(fmt.Sprintf("192.169.%d.%d", randomNum2, randomNum1)) + flowKey := flowexporter.Tuple{SourceAddress: src, DestinationAddress: dst, Protocol: 6, SourcePort: uint16(i), DestinationPort: uint16(i)} + conn := &flowexporter.Connection{ + StartTime: time.Now().Add(-time.Duration(randomNum1) * time.Second), + StopTime: time.Now(), + LastExportTime: time.Now().Add(-time.Duration(randomNum1)*time.Millisecond - testActiveFlowTimeout), + IsPresent: true, + DoneExport: false, + FlowKey: flowKey, + OriginalPackets: 100, + OriginalBytes: 10, + ReversePackets: 50, + ReverseBytes: 5, + SourcePodNamespace: "ns1", + SourcePodName: "pod1", + DestinationPodNamespace: "ns2", + DestinationPodName: "pod2", + DestinationServicePortName: "service", + DestinationServiceAddress: net.ParseIP("0.0.0.0"), + TCPState: "SYN_SENT", + } + connKey := flowexporter.NewConnectionKey(conn) + // set connection to dying state + if i >= randomNum && i < testNumOfDyingConns+randomNum { + conn.TCPState = "TIME_WAIT" + } + connStore.AddConnToMap(&connKey, conn) + + // generate record from connection and add the record to record map + record := &flowexporter.FlowRecord{ + Conn: *conn, + PrevPackets: 0, + PrevBytes: 0, + PrevReversePackets: 0, + PrevReverseBytes: 0, + IsIPv6: false, + LastExportTime: time.Now().Add(-testActiveFlowTimeout), + IsActive: true, + } + if i < testNumOfInactiveRecords { + record.PrevPackets = conn.OriginalPackets + record.PrevReversePackets = conn.ReversePackets + record.LastExportTime = time.Now().Add(-testIdleFlowTimeout) + } + records.AddFlowRecordToMap(&connKey, record) + } + return records +} + +func addDenyConns(connStore *connections.DenyConnectionStore) { + for i := 0; i < testNumOfDenyConns; i++ { + randomNum1 := getRandomNum(255) + randomNum2 := getRandomNum(255) + src := net.ParseIP(fmt.Sprintf("192.166.%d.%d", randomNum1, randomNum2)) + dst := net.ParseIP(fmt.Sprintf("192.167.%d.%d", randomNum2, randomNum1)) + flowKey := flowexporter.Tuple{SourceAddress: src, DestinationAddress: dst, Protocol: 6, SourcePort: uint16(i), DestinationPort: uint16(i)} + conn := &flowexporter.Connection{ + StartTime: time.Now().Add(-time.Duration(randomNum1) * time.Second), + StopTime: time.Now(), + LastExportTime: time.Now().Add(-time.Duration(randomNum1)*time.Millisecond - testActiveFlowTimeout), + FlowKey: flowKey, + OriginalPackets: 10, + OriginalBytes: 100, + DeltaBytes: 20, + DeltaPackets: 5, + SourcePodNamespace: "ns1", + SourcePodName: "pod1", + EgressNetworkPolicyName: "egress-reject", + EgressNetworkPolicyType: registry.PolicyTypeAntreaNetworkPolicy, + EgressNetworkPolicyNamespace: "egress-ns", + EgressNetworkPolicyRuleAction: registry.NetworkPolicyRuleActionReject, + } + if i < testNumOfIdleDenyConns { + conn.LastExportTime = time.Now().Add(-testIdleFlowTimeout) + } + connKey := flowexporter.NewConnectionKey(conn) + connStore.AddConnToMap(&connKey, conn) + } +} + +func getRandomNum(value int64) uint64 { + number, _ := rand.Int(rand.Reader, big.NewInt(value)) + return number.Uint64() +} + +func disableLogToStderr() { + klogFlagSet := flag.NewFlagSet("klog", flag.ContinueOnError) + klog.InitFlags(klogFlagSet) + klogFlagSet.Parse([]string{"-logtostderr=false"}) +} diff --git a/pkg/agent/flowexporter/exporter/exporter_test.go b/pkg/agent/flowexporter/exporter/exporter_test.go index f9c512bc5f3..0d23049c893 100644 --- a/pkg/agent/flowexporter/exporter/exporter_test.go +++ b/pkg/agent/flowexporter/exporter/exporter_test.go @@ -40,24 +40,6 @@ const ( testIdleFlowTimeout = 1 * time.Second ) -func makeTuple(srcIP *net.IP, dstIP *net.IP, protoID uint8, srcPort uint16, dstPort uint16) (flowexporter.Tuple, flowexporter.Tuple) { - tuple := flowexporter.Tuple{ - SourceAddress: *srcIP, - DestinationAddress: *dstIP, - Protocol: protoID, - SourcePort: srcPort, - DestinationPort: dstPort, - } - revTuple := flowexporter.Tuple{ - SourceAddress: *dstIP, - DestinationAddress: *srcIP, - Protocol: protoID, - SourcePort: dstPort, - DestinationPort: srcPort, - } - return tuple, revTuple -} - func TestFlowExporter_sendTemplateSet(t *testing.T) { for _, tc := range []struct { v4Enabled bool @@ -100,7 +82,7 @@ func sendTemplateSet(t *testing.T, ctrl *gomock.Controller, mockIPFIXExpProc *ip flowExp.ipfixSet = mockTempSet // Following consists of all elements that are in IANAInfoElements and AntreaInfoElements (globals) // Only the element name is needed, other arguments have dummy values. - var elemList = make([]*ipfixentities.InfoElementWithValue, 0) + elemList := getElementList(isIPv6) ianaIE := IANAInfoElementsIPv4 antreaIE := AntreaInfoElementsIPv4 if isIPv6 { @@ -108,15 +90,12 @@ func sendTemplateSet(t *testing.T, ctrl *gomock.Controller, mockIPFIXExpProc *ip antreaIE = AntreaInfoElementsIPv6 } for i, ie := range ianaIE { - elemList = append(elemList, ipfixentities.NewInfoElementWithValue(ipfixentities.NewInfoElement(ie, 0, 0, ipfixregistry.IANAEnterpriseID, 0), nil)) mockIPFIXRegistry.EXPECT().GetInfoElement(ie, ipfixregistry.IANAEnterpriseID).Return(elemList[i].Element, nil) } for i, ie := range IANAReverseInfoElements { - elemList = append(elemList, ipfixentities.NewInfoElementWithValue(ipfixentities.NewInfoElement(ie, 0, 0, ipfixregistry.IANAReversedEnterpriseID, 0), nil)) mockIPFIXRegistry.EXPECT().GetInfoElement(ie, ipfixregistry.IANAReversedEnterpriseID).Return(elemList[i+len(ianaIE)].Element, nil) } for i, ie := range antreaIE { - elemList = append(elemList, ipfixentities.NewInfoElementWithValue(ipfixentities.NewInfoElement(ie, 0, 0, ipfixregistry.AntreaEnterpriseID, 0), nil)) mockIPFIXRegistry.EXPECT().GetInfoElement(ie, ipfixregistry.AntreaEnterpriseID).Return(elemList[i+len(ianaIE)+len(IANAReverseInfoElements)].Element, nil) } if !isIPv6 { @@ -143,6 +122,26 @@ func sendTemplateSet(t *testing.T, ctrl *gomock.Controller, mockIPFIXExpProc *ip assert.Len(t, eL, len(ianaIE)+len(IANAReverseInfoElements)+len(antreaIE), "flowExp.elementsList and template record should have same number of elements") } +func getElementList(isIPv6 bool) []*ipfixentities.InfoElementWithValue { + elemList := make([]*ipfixentities.InfoElementWithValue, 0) + ianaIE := IANAInfoElementsIPv4 + antreaIE := AntreaInfoElementsIPv4 + if isIPv6 { + ianaIE = IANAInfoElementsIPv6 + antreaIE = AntreaInfoElementsIPv6 + } + for _, ie := range ianaIE { + elemList = append(elemList, ipfixentities.NewInfoElementWithValue(ipfixentities.NewInfoElement(ie, 0, 0, ipfixregistry.IANAEnterpriseID, 0), nil)) + } + for _, ie := range IANAReverseInfoElements { + elemList = append(elemList, ipfixentities.NewInfoElementWithValue(ipfixentities.NewInfoElement(ie, 0, 0, ipfixregistry.IANAReversedEnterpriseID, 0), nil)) + } + for _, ie := range antreaIE { + elemList = append(elemList, ipfixentities.NewInfoElementWithValue(ipfixentities.NewInfoElement(ie, 0, 0, ipfixregistry.AntreaEnterpriseID, 0), nil)) + } + return elemList +} + // TestFlowExporter_sendDataRecord tests essentially if element names in the switch-case matches globals // IANAInfoElements and AntreaInfoElements. func TestFlowExporter_sendDataSet(t *testing.T) { @@ -297,14 +296,14 @@ func getConnection(isIPv6 bool, isPresent bool, statusFlag uint32, protoID uint8 return conn } -func getDenyConnection(isIPv6 bool, isActive bool) *flowexporter.Connection { +func getDenyConnection(isIPv6 bool, isActive bool, protoID uint8) *flowexporter.Connection { var tuple, _ flowexporter.Tuple if !isIPv6 { - tuple, _ = makeTuple(&net.IP{1, 2, 3, 4}, &net.IP{4, 3, 2, 1}, 6, 65280, 255) + tuple = flowexporter.Tuple{SourceAddress: net.IP{1, 2, 3, 4}, DestinationAddress: net.IP{4, 3, 2, 1}, Protocol: 6, SourcePort: 65280, DestinationPort: 255} } else { srcIP := net.ParseIP("2001:0:3238:dfe1:63::fefb") dstIP := net.ParseIP("2001:0:3238:dfe1:63::fefc") - tuple, _ = makeTuple(&srcIP, &dstIP, 6, 65280, 255) + tuple = flowexporter.Tuple{SourceAddress: srcIP, DestinationAddress: dstIP, Protocol: protoID, SourcePort: 65280, DestinationPort: 255} } conn := &flowexporter.Connection{ FlowKey: tuple, @@ -457,7 +456,7 @@ func runSendFlowRecordTests(t *testing.T, flowExp *flowExporter, isIPv6 bool) { assert.NoError(t, err) flowExp.numDataSetsSent = 0 - denyConn := getDenyConnection(isIPv6, tt.isDenyConnActive) + denyConn := getDenyConnection(isIPv6, tt.isDenyConnActive, tt.protoID) flowExp.denyConnStore = connections.NewDenyConnectionStore(nil, nil) flowExp.denyConnStore.AddOrUpdateConn(denyConn, denyConn.LastExportTime, denyConn.DeltaBytes) assert.Equal(t, getNumOfConnections(flowExp.denyConnStore), 1) diff --git a/pkg/agent/flowexporter/flowrecords/flow_records.go b/pkg/agent/flowexporter/flowrecords/flow_records.go index 9e1c487ac8b..6805d360c35 100644 --- a/pkg/agent/flowexporter/flowrecords/flow_records.go +++ b/pkg/agent/flowexporter/flowrecords/flow_records.go @@ -124,7 +124,7 @@ func (fr *FlowRecords) ForAllFlowRecordsDo(callback flowexporter.FlowRecordCallB for k, v := range fr.recordsMap { err := callback(k, v) if err != nil { - klog.Errorf("Error when executing callback for flow record") + klog.Errorf("Error when executing callback for flow record: %v", err) return err } } diff --git a/pkg/flowaggregator/flowaggregator.go b/pkg/flowaggregator/flowaggregator.go index f03487ed4f7..75a00a0d8cd 100644 --- a/pkg/flowaggregator/flowaggregator.go +++ b/pkg/flowaggregator/flowaggregator.go @@ -398,7 +398,7 @@ func (fa *flowAggregator) flowRecordExpiryCheck(stopCh <-chan struct{}) { } } -func (fa *flowAggregator) sendFlowKeyRecord(key ipfixintermediate.FlowKey, record ipfixintermediate.AggregationFlowRecord) error { +func (fa *flowAggregator) sendFlowKeyRecord(key ipfixintermediate.FlowKey, record *ipfixintermediate.AggregationFlowRecord) error { templateID := fa.templateIDv4 if net.ParseIP(key.SourceAddress).To4() == nil || net.ParseIP(key.DestinationAddress).To4() == nil { templateID = fa.templateIDv6 @@ -408,9 +408,9 @@ func (fa *flowAggregator) sendFlowKeyRecord(key ipfixintermediate.FlowKey, recor if err := fa.set.PrepareSet(ipfixentities.Data, templateID); err != nil { return err } - if !fa.aggregationProcess.IsMetadataFilled(record) { + if !fa.aggregationProcess.AreCorrelatedFieldsFilled(*record) { fa.fillK8sMetadata(key, record.Record) - fa.aggregationProcess.SetMetadataFilled(record) + fa.aggregationProcess.SetCorrelatedFieldsFilled(record) } err := fa.set.AddRecord(record.Record.GetOrderedElementList(), templateID) if err != nil { diff --git a/pkg/flowaggregator/flowaggregator_test.go b/pkg/flowaggregator/flowaggregator_test.go index 844b9afc769..64a2b5a8b2a 100644 --- a/pkg/flowaggregator/flowaggregator_test.go +++ b/pkg/flowaggregator/flowaggregator_test.go @@ -86,19 +86,19 @@ func TestFlowAggregator_sendFlowKeyRecord(t *testing.T) { name string isIPv6 bool flowKey ipfixintermediate.FlowKey - flowRecord ipfixintermediate.AggregationFlowRecord + flowRecord *ipfixintermediate.AggregationFlowRecord }{ { "IPv4_ready_to_send", false, ipv4Key, - readyRecord, + &readyRecord, }, { "IPv6_ready_to_send", true, ipv6Key, - readyRecord, + &readyRecord, }, } @@ -114,8 +114,8 @@ func TestFlowAggregator_sendFlowKeyRecord(t *testing.T) { mockDataSet.EXPECT().AddRecord(elementList, templateID).Return(nil) mockIPFIXExpProc.EXPECT().SendSet(mockDataSet).Return(0, nil) mockAggregationProcess.EXPECT().ResetStatElementsInRecord(mockRecord).Return(nil) - mockAggregationProcess.EXPECT().IsMetadataFilled(tc.flowRecord).Return(false) - mockAggregationProcess.EXPECT().SetMetadataFilled(tc.flowRecord) + mockAggregationProcess.EXPECT().AreCorrelatedFieldsFilled(tc.flowRecord).Return(false) + mockAggregationProcess.EXPECT().SetCorrelatedFieldsFilled(tc.flowRecord) err := fa.sendFlowKeyRecord(tc.flowKey, tc.flowRecord) assert.NoError(t, err, "Error in sending flow key record: %v, key: %v, record: %v", err, tc.flowKey, tc.flowRecord) diff --git a/pkg/ipfix/ipfix_intermediate.go b/pkg/ipfix/ipfix_intermediate.go index db994156730..0985dbc3de0 100644 --- a/pkg/ipfix/ipfix_intermediate.go +++ b/pkg/ipfix/ipfix_intermediate.go @@ -31,8 +31,8 @@ type IPFIXAggregationProcess interface { ForAllExpiredFlowRecordsDo(callback ipfixintermediate.FlowKeyRecordMapCallBack) error GetExpiryFromExpirePriorityQueue() time.Duration ResetStatElementsInRecord(record ipfixentities.Record) error - SetMetadataFilled(record ipfixintermediate.AggregationFlowRecord) - IsMetadataFilled(record ipfixintermediate.AggregationFlowRecord) bool + SetCorrelatedFieldsFilled(record *ipfixintermediate.AggregationFlowRecord) + AreCorrelatedFieldsFilled(record ipfixintermediate.AggregationFlowRecord) bool } type ipfixAggregationProcess struct { @@ -71,10 +71,10 @@ func (ap *ipfixAggregationProcess) ResetStatElementsInRecord(record ipfixentitie return ap.AggregationProcess.ResetStatElementsInRecord(record) } -func (ap *ipfixAggregationProcess) SetMetadataFilled(record ipfixintermediate.AggregationFlowRecord) { - ap.AggregationProcess.SetMetadataFilled(record, true) +func (ap *ipfixAggregationProcess) SetCorrelatedFieldsFilled(record *ipfixintermediate.AggregationFlowRecord) { + ap.AggregationProcess.SetCorrelatedFieldsFilled(record, true) } -func (ap *ipfixAggregationProcess) IsMetadataFilled(record ipfixintermediate.AggregationFlowRecord) bool { - return ap.AggregationProcess.IsMetadataFilled(record) +func (ap *ipfixAggregationProcess) AreCorrelatedFieldsFilled(record ipfixintermediate.AggregationFlowRecord) bool { + return ap.AggregationProcess.AreCorrelatedFieldsFilled(record) } diff --git a/pkg/ipfix/testing/mock_ipfix.go b/pkg/ipfix/testing/mock_ipfix.go index 76e467fb019..d3a995e798a 100644 --- a/pkg/ipfix/testing/mock_ipfix.go +++ b/pkg/ipfix/testing/mock_ipfix.go @@ -225,6 +225,20 @@ func (m *MockIPFIXAggregationProcess) EXPECT() *MockIPFIXAggregationProcessMockR return m.recorder } +// AreCorrelatedFieldsFilled mocks base method +func (m *MockIPFIXAggregationProcess) AreCorrelatedFieldsFilled(arg0 intermediate.AggregationFlowRecord) bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "AreCorrelatedFieldsFilled", arg0) + ret0, _ := ret[0].(bool) + return ret0 +} + +// AreCorrelatedFieldsFilled indicates an expected call of AreCorrelatedFieldsFilled +func (mr *MockIPFIXAggregationProcessMockRecorder) AreCorrelatedFieldsFilled(arg0 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AreCorrelatedFieldsFilled", reflect.TypeOf((*MockIPFIXAggregationProcess)(nil).AreCorrelatedFieldsFilled), arg0) +} + // ForAllExpiredFlowRecordsDo mocks base method func (m *MockIPFIXAggregationProcess) ForAllExpiredFlowRecordsDo(arg0 intermediate.FlowKeyRecordMapCallBack) error { m.ctrl.T.Helper() @@ -253,20 +267,6 @@ func (mr *MockIPFIXAggregationProcessMockRecorder) GetExpiryFromExpirePriorityQu return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetExpiryFromExpirePriorityQueue", reflect.TypeOf((*MockIPFIXAggregationProcess)(nil).GetExpiryFromExpirePriorityQueue)) } -// IsMetadataFilled mocks base method -func (m *MockIPFIXAggregationProcess) IsMetadataFilled(arg0 intermediate.AggregationFlowRecord) bool { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsMetadataFilled", arg0) - ret0, _ := ret[0].(bool) - return ret0 -} - -// IsMetadataFilled indicates an expected call of IsMetadataFilled -func (mr *MockIPFIXAggregationProcessMockRecorder) IsMetadataFilled(arg0 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsMetadataFilled", reflect.TypeOf((*MockIPFIXAggregationProcess)(nil).IsMetadataFilled), arg0) -} - // ResetStatElementsInRecord mocks base method func (m *MockIPFIXAggregationProcess) ResetStatElementsInRecord(arg0 entities.Record) error { m.ctrl.T.Helper() @@ -281,16 +281,16 @@ func (mr *MockIPFIXAggregationProcessMockRecorder) ResetStatElementsInRecord(arg return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetStatElementsInRecord", reflect.TypeOf((*MockIPFIXAggregationProcess)(nil).ResetStatElementsInRecord), arg0) } -// SetMetadataFilled mocks base method -func (m *MockIPFIXAggregationProcess) SetMetadataFilled(arg0 intermediate.AggregationFlowRecord) { +// SetCorrelatedFieldsFilled mocks base method +func (m *MockIPFIXAggregationProcess) SetCorrelatedFieldsFilled(arg0 *intermediate.AggregationFlowRecord) { m.ctrl.T.Helper() - m.ctrl.Call(m, "SetMetadataFilled", arg0) + m.ctrl.Call(m, "SetCorrelatedFieldsFilled", arg0) } -// SetMetadataFilled indicates an expected call of SetMetadataFilled -func (mr *MockIPFIXAggregationProcessMockRecorder) SetMetadataFilled(arg0 interface{}) *gomock.Call { +// SetCorrelatedFieldsFilled indicates an expected call of SetCorrelatedFieldsFilled +func (mr *MockIPFIXAggregationProcessMockRecorder) SetCorrelatedFieldsFilled(arg0 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMetadataFilled", reflect.TypeOf((*MockIPFIXAggregationProcess)(nil).SetMetadataFilled), arg0) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCorrelatedFieldsFilled", reflect.TypeOf((*MockIPFIXAggregationProcess)(nil).SetCorrelatedFieldsFilled), arg0) } // Start mocks base method diff --git a/plugins/octant/go.sum b/plugins/octant/go.sum index f9423a9444b..6fe813bebcb 100644 --- a/plugins/octant/go.sum +++ b/plugins/octant/go.sum @@ -649,7 +649,7 @@ github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmF github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vmware-tanzu/octant v0.17.0 h1:2H2AiQU5C1RiHxxYrrOosDHHI9eV51nP+e9PjRP+c48= github.com/vmware-tanzu/octant v0.17.0/go.mod h1:lA32xKa6icUclg+DjAX/E/Id1cTqwCXZUem3RGEp/2A= -github.com/vmware/go-ipfix v0.5.2/go.mod h1:rMDcGc5pEmG+wT2grK5ZgvsF1EOdxqHDnNkB/kFJT78= +github.com/vmware/go-ipfix v0.5.3/go.mod h1:SF6BrZTPvoVdzgmjJvshoegBVbicn4xWlkoCNADab6E= github.com/wenyingd/ofnet v0.0.0-20201109024835-6fd225d8c8d1/go.mod h1:8mMMWAYBNUeTGXYKizOLETfN3WIbu3P5DgvS2jiXKdI= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= @@ -1025,8 +1025,9 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1 h1:7QnIQpGRHE5RnLKnESfDoxm2dTapTZua5a0kS0A+VXQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=