Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flow-Aggregator] Add e2e tests for flow aggregator #1628

Conversation

dreamtalen
Copy link
Contributor

@dreamtalen dreamtalen commented Dec 8, 2020

In this commit, we add e2e tests for the flow aggregator. For these tests, we setup an environment where the flow exporters in antrea agents export flow records to the flow aggregator. The flow aggregator will run the collecting, aggregating jobs and will export records to the external IPFIX collector.

The existing "flow exporter" tests (where the agents export to the external collector directly) are replaced with "flow aggregator" tests, as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to only be exported from the source node since we now have the aggregator to correlate and de-duplicate flows. Related commit and PR are b44fd78, #1268.

@antrea-bot
Copy link
Collaborator

Thanks for your PR.
Unit tests and code linters are run automatically every time the PR is updated.
E2e, conformance and network policy tests can only be triggered by a member of the vmware-tanzu organization. Regular contributors to the project should join the org.

The following commands are available:

  • /test-e2e: to trigger e2e tests.
  • /skip-e2e: to skip e2e tests.
  • /test-conformance: to trigger conformance tests.
  • /skip-conformance: to skip conformance tests.
  • /test-all-features-conformance: to trigger conformance tests with all alpha features enabled.
  • /skip-all-features-conformance: to skip conformance tests with all alpha features enabled.
  • /test-whole-conformance: to trigger all conformance tests on linux.
  • /skip-whole-conformance: to skip all conformance tests on linux.
  • /test-networkpolicy: to trigger networkpolicy tests.
  • /skip-networkpolicy: to skip networkpolicy tests.
  • /test-windows-conformance: to trigger windows conformance tests.
  • /skip-windows-conformance: to skip windows conformance tests.
  • /test-windows-networkpolicy: to trigger windows networkpolicy tests.
  • /skip-windows-networkpolicy: to skip windows networkpolicy tests.
  • /test-hw-offload: to trigger ovs hardware offload test.
  • /skip-hw-offload: to skip ovs hardware offload test.
  • /test-all: to trigger all tests (except whole conformance).
  • /skip-all: to skip all tests (except whole conformance).

@dreamtalen dreamtalen changed the title Add e2e tests for flow aggregator [Flow-Aggregator] Add e2e tests for flow aggregator Dec 8, 2020
@codecov-io
Copy link

codecov-io commented Dec 8, 2020

Codecov Report

❗ No coverage uploaded for pull request base (feature/flow-aggregator@6edf70f). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@                    Coverage Diff                     @@
##             feature/flow-aggregator    #1628   +/-   ##
==========================================================
  Coverage                           ?   61.82%           
==========================================================
  Files                              ?      184           
  Lines                              ?    15607           
  Branches                           ?        0           
==========================================================
  Hits                               ?     9649           
  Misses                             ?     4926           
  Partials                           ?     1032           
Flag Coverage Δ
kind-e2e-tests 53.72% <0.00%> (?)
unit-tests 40.40% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from 2c79e8d to 36f4474 Compare December 8, 2020 03:28
if err != nil {
return err
}
// fmt.Printf("configMap.Data['flow-aggregator.conf']: %+v\n", configMap.Data[flowAggregatorConfName])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably a stray line from debugging

@@ -97,12 +98,12 @@ waitForNodes "${pids[@]}"
echo "Done!"

echo "Copying Antrea deployment YAML to every node..."
scp -F ssh-config $ANTREA_YML $ANTREA_IPSEC_YML k8s-node-master:~/ &
scp -F ssh-config $ANTREA_YML $ANTREA_IPSEC_YML $FLOW_AGGREGATOR_YML k8s-node-master:~/ &
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am guessing this is for your local test runs and not CI.
We should probably automate the workflow of enabling flow exporter, deploying Antrea, and deploying Flow Aggregator on the vagrant setup for dev/demo purposes. This can be considered as a future TODO.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If its not for your CI, please remove this. #1646 can handle this for dev automated workflow.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. removed.

if err := data.deployFlowAggregator(ipStr + ":" + ipfixCollectorPort + ":tcp"); err != nil {
return data, err
}
flowAggregatorIP, err := data.getServiceIP("flow-aggregator", flowAggregatorNamespace)
Copy link
Member

@srikartati srikartati Dec 8, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see e2e test failures on kind setups in this PR.. both for TestFlowExporter and TestFlowAggregator.
Seems like it needs some debugging.

As part of that, could you cherry-pick my commit (#1629) and make changes for e2e tests? You will not need to acquire serviceIP of flow aggregator.

AntreaProxy enabled (Inter-Node): Flow record from destination Node is ignored, so only flow record from the source Node has its K8s info like in Inter-Node case along with K8s Service info such as destinationClusterIP, destinationServicePort, destinationServicePortName etc.
*/

func TestFlowAggregator(t *testing.T) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think TestFlowAggregator and TestFlowExporter can be consolidated as in both cases, we need an external flow collector and just the checks will be different. This will save some time in deploying and tearing down the external flow collector.

@@ -271,7 +267,7 @@ func checkRecordsForFlowAggregator(t *testing.T, data *TestData, srcIP string, d
}
}
t.Logf("Receive template record number: %d, data record number: %d", templateRecords, dataRecordsCount)
assert.Equal(t, templateRecords, 1, "Flow aggregator should send out 1 template record")
assert.GreaterOrEqual(t, templateRecords, 1, "Flow aggregator should send out at least 1 template record")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not exactly one? Is there any issue with clean up code?

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from ddfc977 to f353764 Compare December 10, 2020 01:22
@srikartati
Copy link
Member

@dreamtalen I still see both flow exporter and flow aggregator e2e tests failing. Is there any current issue that is not resolved yet?

@dreamtalen
Copy link
Contributor Author

@dreamtalen I still see both flow exporter and flow aggregator e2e tests failing. Is there any current issue that is not resolved yet?

Yes, these tests failings are related to CI, e2e tests can pass on my local environment, will fix them soon.

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from f353764 to 36d52d5 Compare December 10, 2020 18:36
@srikartati srikartati force-pushed the feature/flow-aggregator branch from 269eb5e to 6e4ca65 Compare December 10, 2020 23:32
@antoninbas antoninbas force-pushed the feature/flow-aggregator branch 2 times, most recently from 0cab885 to a3f0042 Compare December 11, 2020 03:20
@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch 6 times, most recently from cc37c0a to 048b74f Compare December 15, 2020 01:28
@srikartati srikartati added this to the Antrea v0.12.0 release milestone Dec 15, 2020
@dreamtalen
Copy link
Contributor Author

/test-all

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch 3 times, most recently from 517852b to 8998511 Compare December 16, 2020 22:42
@srikartati srikartati force-pushed the feature/flow-aggregator branch from 0c23c32 to 0f331b9 Compare December 17, 2020 18:32
@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from 8998511 to bfc6e40 Compare December 17, 2020 19:14
}},
})
if err != nil {
t.Fatalf("Error when creating Network Policy: %v", err)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change fatal message to error as master branch to make sure the test deployments are teared down before exiting. Same for most of the error logs in this file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

Copy link
Contributor

@antoninbas antoninbas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @srikartati - these tests (exporter & aggregator) need to be consolidated.

I didn't look into the details, but I see a lot of copy-paste and a lot of code doing exactly the same thing (e.g. to validate records).

Comment on lines -137 to -148
// Do not export the flow records of connections whose destination is local
// Pod and source is remote Pod. We export flow records only from source node,
// where the connection originates from. This is to avoid duplicate copies
// of flow records at flow collector. This restriction will be removed when
// flow aggregator is implemented. We miss some key information such as
// destination Pod info, ingress NetworkPolicy info, stats from destination
// node etc.
// TODO: Remove this when flow aggregator that correlates the flow records
// is implemented.
if !srcFound && dstFound {
conn.DoExport = false
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a big change IMO so I am surprised to find it in an unrelated PR with no mention in the PR description?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, added related PR and commit information in this PR's description.

@@ -168,6 +168,44 @@ func setupTestWithIPFIXCollector(tb testing.TB) (*TestData, error, bool) {
return data, nil, isIPv6
}

func setupTestWithFlowAggregator(tb testing.TB) (*TestData, error) {
data := &TestData{}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need a brand new TestData instance instead of using the existing one, which already has an initialized K8s client?

The same question applies to setupTestWithIPFIXCollector

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

@@ -168,6 +168,44 @@ func setupTestWithIPFIXCollector(tb testing.TB) (*TestData, error, bool) {
return data, nil, isIPv6
}

func setupTestWithFlowAggregator(tb testing.TB) (*TestData, error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can't setupTestWithIPFIXCollector and setupTestWithFlowAggregator be unified with an extra boolean parameter? we just keep adding more code to do pretty much the same thing

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from bfc6e40 to e499e94 Compare December 17, 2020 19:40
@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from e499e94 to b144b6b Compare December 17, 2020 19:46
@dreamtalen
Copy link
Contributor Author

I agree with @srikartati - these tests (exporter & aggregator) need to be consolidated.

I didn't look into the details, but I see a lot of copy-paste and a lot of code doing exactly the same thing (e.g. to validate records).

Thanks for your comments, Antonin. Will try to combine the flow exporter and aggregator e2e test.

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch 8 times, most recently from 4cdf3f5 to 9f95ec1 Compare December 18, 2020 19:09
Copy link
Contributor

@antoninbas antoninbas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did a detailed review, looks much better than before

Lots of typos in the commit, use following:

In this commit, we add e2e tests for the flow aggregator. For these tests, we setup an environment where the flow exporters in antrea agents export flow records to the flow aggregator. The flow aggregator will run the collecting, aggregating jobs and will export records to the external IPFIX collector.

The existing "flow exporter" tests (where the agents export to and external collector directly) are replaced with "flow aggregator" tests, as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to only be exported from the source node since we now have the aggregator to correlate and de-duplicate flows. Related commit and PR are b44fd78, #1268.

Comment on lines 138 to 141
tb.Logf("Creating K8s clientset")
if err := data.createClient(); err != nil {
if err := testData.createClient(); err != nil {
return nil, err, isIPv6
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should not be needed - the clientset in testdata has already been configured in testMain

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

@@ -130,42 +129,42 @@ func setupTest(tb testing.TB) (*TestData, error) {
}

func setupTestWithIPFIXCollector(tb testing.TB) (*TestData, error, bool) {
data := &TestData{}
// TODO: remove this hardcoding IPv4 setting after flow aggregator supports IPv6
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// TODO: remove this hardcoding IPv4 setting after flow aggregator supports IPv6
// TODO: remove hardcoding to IPv4 after flow aggregator supports IPv6

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

Comment on lines 81 to 82
// Single iperf resulting in two connections with separate ports. Suspecting second flow to be control flow to exchange
// stats info. As 5s is export interval and iperf traffic runs for 10s, we expect about 4 records exporting to the flow aggregator.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's correct, iperf uses a "control" connection

suugestion: Single iperf run results in two connections with separate ports (control connection and actual data connection).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

expectedNumTemplateRecords = 1
// Single iperf resulting in two connections with separate ports. Suspecting second flow to be control flow to exchange
// stats info. As 5s is export interval and iperf traffic runs for 10s, we expect about 4 records exporting to the flow aggregator.
// Since flow aggregator will aggregate records based on 5-tuple connection key, so we expect 2 records.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Since flow aggregator will aggregate records based on 5-tuple connection key, so we expect 2 records.
// Since flow aggregator will aggregate records based on 5-tuple connection key, we expect 2 records.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

Comment on lines 98 to 99
// Flow exporter can't connect with flow aggregator service if proxy disabled.
skipIfProxyDisabled(t, data)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That doesn't sound right to me, could you elaborate?

Ability to connect to the flow aggregator should be independent of whether AntreaProxy is enabled.

Copy link
Contributor Author

@dreamtalen dreamtalen Dec 19, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.
Yes you're right, only LocalServiceAccess and RemoteServiceAccess testcases neet to be skipped.

t.Errorf("Records with dstIP does not have Pod name")
if isIntraNode {
if !strings.Contains(record, "perftest-a") {
t.Errorf("Records with srcIP does not have Pod name")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
t.Errorf("Records with srcIP does not have Pod name")
t.Errorf("Record with srcIP does not have Pod name")

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

Comment on lines 194 to 199
t.Errorf("Records with dstIP does not have Pod name")
}
} else {
// Flow record comes from destination node may contain incomplete pod name information
if !strings.Contains(record, "perftest-a") && !strings.Contains(record, "perftest-b") {
t.Errorf("Records does not have source and destination Pod name")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/Records/Record in log messages

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

t.Errorf("Records with dstIP does not have Pod name")
}
} else {
// Flow record comes from destination node may contain incomplete pod name information
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/Flow record comes/Flow record coming

However, I thought that the aggregator ensures no incomplete information in records? @srikartati

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be this comment was copied from Flow Exporter code. We should have complete information with flow aggregator.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually I added this if-condition because sometimes aggregator doesn't have complete information in the Kind cluster e2e test. Not sure go-ipfix v0.4.2 solved this issue or not, will try again after PR #1676 merged.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

go-ipfix v0.4.2 should resolve this.. we introduced readyToSend field in aggregator process to wait until we receive the records from source and destination node.

@@ -253,17 +252,47 @@ func checkRecordsForFlows(t *testing.T, data *TestData, srcIP string, dstIP stri
}
}
}
// Check the aggregation results in infra tests
if !strings.Contains(record, fmt.Sprintf("%s: %s", "destinationPodNamespace", testNamespace)) {
t.Errorf("Records does not have correct destinationPodNamespace")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/Records does not have/Record does not have

here and in all the error messages below

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch 2 times, most recently from fb93299 to 4ad13ca Compare December 19, 2020 00:51
Copy link
Contributor

@antoninbas antoninbas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

egressNetworkPolicyName = "test-flow-aggregator-networkpolicy-egress"
collectorCheckDelay = 1 * time.Second
expectedNumTemplateRecords = 1
// Single iperf run results in two connections with separate ports (control connection and actual data connection). Suspecting second flow to be control
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can remove "Suspecting second flow to be control flow to exchange stats info." now

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, addressed.

In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
@dreamtalen dreamtalen force-pushed the local-flow-aggregator-e2e branch from 4ad13ca to 95246f6 Compare December 19, 2020 01:26
@antoninbas antoninbas merged commit 179a472 into antrea-io:feature/flow-aggregator Dec 19, 2020
srikartati pushed a commit to srikartati/antrea that referenced this pull request Dec 19, 2020
In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
srikartati pushed a commit to srikartati/antrea that referenced this pull request Dec 19, 2020
In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
srikartati pushed a commit to srikartati/antrea that referenced this pull request Dec 21, 2020
In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
srikartati pushed a commit to srikartati/antrea that referenced this pull request Dec 21, 2020
In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
zyiou pushed a commit to zyiou/antrea that referenced this pull request Dec 21, 2020
In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
zyiou pushed a commit to zyiou/antrea that referenced this pull request Dec 21, 2020
In this commit, we add e2e tests for the flow aggregator. For these
tests, we setup an environment where the flow exporters in antrea agents
export flow records to the flow aggregator. The flow aggregator will run
the collecting, aggregating jobs and will export records to the external
IPFIX collector.

The existing "flow exporter" tests (where the agents export to the
external collector directly) are replaced with "flow aggregator" tests,
as we assume that the aggregator is always deployed.

Also, we removed the configuration in the agents causing flow records to
only be exported from the source node since we now have the aggregator
to correlate and de-duplicate flows. Related commit and PR are b44fd78,
PR#1268.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants