All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.
- Bump Go to 1.23. (#365, @antoninbas)
- Add a few log messages to exporter process. (#367, @antoninbas)
- Bump Ubuntu to 24.04 for Docker images. (#369, @antoninbas)
Go module version v0.10.0 has been retracted; it should not be used.
- Restore check for closed TCP connection in exporter process. (#360, @antoninbas)
- Add more features to the test IPFIX collector web API. (#351, @antoninbas)
- Return receive-only channel in the GetMsgChan() method of the collector process. (#350, @antoninbas)
- Use recommended default value of 600s for templateRefreshTimeout. (#353, @antoninbas)
- Stop referencing the VMware Harbor registry for ipfix-collector. (#347, @antoninbas)
- Fix how decoding errors are handled for UDP clients in collector process. (#352, @antoninbas)
- Fix how collector connections are closed in exporter process. (#354, @antoninbas)
- Add EgressNodeName field to the Antrea registry. (#343, @Atish-iaf)
- Improve IPFIX collector. (#338, @yuntanghsu)
- Added new Go Benchmarks. (#329, @antoninbas)
- Improve memory performance of collector. (#330 #331, @antoninbas)
- Rename l7ProtocolName to appProtocolName. (#333, @tushartathgur)
- Updated aggregation logic for httpVals field. (#334, @tushartathgur)
- Add L7 visibility fields. (#315, @tushartathgur)
- Change datatype of flowEndSecondsFromSourceNode and flowEndSecondsFromDestinationNode. (#320, @tushartathgur)
- Improve handling of string IEs. (#322, @antoninbas)
- Avoid error logs in BenchmarkMultipleExportersToCollector. (#323, @antoninbas)
- Improve integration tests. (#325, @antoninbas)
- Fix aggregation bug that throughput common fields should be only updated when the receiving record is the latest. (#324, @antoninbas)
- Upgrade Go to v1.21, as Go v1.19 is no longer maintained. (#317, @antoninbas)
- Replace github.com/golang/mock with go.uber.org/mock, as github.com/golang/mock is no longer maintained. (#316, @antoninbas)
- Fix collector klog flag not supported error by adding registration of the flag. (#311, @heanlan)
- Add fields for Egress information support. (#308, @dreamtalen)
- Increase log verbosity when skipping aggregation. (#303, @heanlan)
- Upgrade Go to v1.19. Upgrade Go modules to their latest version. Upgrade Antrea base image to ubuntu 22.04. (#293, @antoninbas)
- Refactor TLS client config for exporter. (#294, @antoninbas)
- Add APIs for custom registries. (#288, @praveingk)
- Renew fake cert for tests. (#290, @yanjunz97)
- Fix the throughput burst issue. (#278, @yanjunz97)
- Add throughput calculation into aggregation process. (#270, @heanlan)
- Update GetRecords in AggregationProcess to return map format records. (#271, @yanjunz97)
- Add GetName and GetDataType method to infoElementWithValue. (#259, @zyiou)
- Add GetRecords method to AggregationProcess. (#261, @yanjunz97)
- Remove UDP message checks. (#241, @srikartati)
- Modify flow visibility methods and return type. (#262, @zyiou)
- Add visibility of collector ingest rate and aggregator connection count. (#253, @zyiou)
- Remove connection mutex for exporting process. (#248, @antoninbas)
- Modify the basic structure NewInfoElementWithValue to reduce memory consumption. (#252, @stati)
- Remove duplicated code in ie_value.go. (#254, @stati)
- Fix unnecessary allocations in the code related to iterating through list of elements and casting to interface pointer. (#246 @stati)
- Add support for sending JSON record. (#237, @zyiou)
- Add new method for adding record with extra elements. (#243, @stati)
- Skip sending template record for JSON records. (#242, @zyiou)
- Fix image tag in kafka flow collector manifest. (#233, @stati)
- Fix collector close issue and add perf test for multiple exporters to collector. (#236, @zyiou)
- Performance fix for collecting and intermediate process. (#239, @stati)
- Fix partial buffer read issues on TCP connection. (#240, @stati)
- Add convertor interface input into Kafka producer. (#223, @stati)
- Add consumer, broker and related deployment yaml for consuming records from Kafka producer. (#214, @zyiou)
- Cleanup unnecessary producer files. (#228, @stati)
- Improve Kafka consumer application by adding retry mechanism for consumer initialization. (#230, @stati)
- Change Docker version of images used in kafka server deployment yaml. (#224, @zyiou)
- Fix bug that after stopping the TCP collector process, new connections should not be established. (#227, @stati)
- Fix bug that after stopping the collector process, no write should be processed on existing connections. (#229, @zyiou)
- Clear original export fields in the aggregation process. (#220, @stati)
- Move bytes.buffer to []byte for set and message. Optimize the encoding of record, set and message entities. (#215, @zyiou)
- Add Pod Labels to the Antrea registry. (#203, @dreamtalen)
- Add Kafka TLS support to the Kafka Producer. (#178, @stati)
- Add more methods to the Kafka Producer. (#210, @stati)
- Add
AreExternalFieldsFilled
metadata field for AggregationFlowRecord. (#211, @dreamtalen) - Add more metadata to the aggregated flow record. (#216, @stati)
- Modify record entity and encoding/decoding methods to use byte datatype directly. (#207, @stati)
- Remove element map from the record. (#206, @zyiou)
- Modify the proto format of Kafka flow message. (#208, @stati)
- Remove unnecessary allocations in record entity code. (#200, @stati)
- Optimize encoding code when adding element to data record and decrease memory allocations. (#204, @stati)
- Fix the aggregation process set/get methods by modifying the aggregate record map. (#212, @zyiou)
- Fix the buffer management in the Collection Process. (#213, @stati)
- Add support for isMetadataFilled for aggregation process (#196 @zyiou)
- Remove the portion of updating the version of Helm Chart in generating manifest process, and fix the issue that manifest of ipfix-collector cannot be uploaded to release assets. (#194 @heanlan)
- Update some package versions to keep consistent with Antrea go.mod (#195 @zyiou)
- Create K8s deployment yaml to deploy ipfix-collector and add instructions on deploying the latest go-ipfix collector . (#159, #182, @heanlan)
- Add aggregation process support for deny connections tracking. (#175, #183, @zyiou)
- Modify aggregation process to maintain records in a heap based on active and inactive expiry timeouts. (#185, @stati)
- Modify rule priority types in Antrea registry. (#184, #189, @heanlan)
- Delete unrequired method of deleting record from record map witout lock. (#181, @stati)
- Modify network policy related fields in Antrea registry. (#179, @zyiou)
- Move klog to klog/v2. (#187, @zyiou)
- Remove codecov token from script. (#176, @zyiou)
Includes all the bug fixes from 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7, and 0.4.8.
- Added Kafka Producer that is initialized given the address of Kafka broker system. It gathers the IPFIX messages from the collecting process and turns them into Kafka messages. (#88, @stati)
- Demonstrate the ability to support multiple proto schemas in Kafka Producer. (#99, @stati)
- Add new fields to Antrea Registry for enhancing network policy info and adding all the tcp states of the connection. (#165, @zyiou)
- Change the name of master branch to main. (#144, @zyiou)
- Change the names of Flow Types. (#171, @zyiou)
- Enhance the debug logs with useful info. (#170, @zyiou)
- Fix the default expiration time of TLS certificates in tests by increasing it from one month to one year. (#127, @zyiou)
- Fix the code in pkg/producer when cherrypicking commits from v0.4.5 release. (#143, @stati)
- Fix the branch name in go-ipfix collector image workflow. (#160, @stati)
- Fix an issue of cleaning up slice in the IPFIX set Reset method. (#163, @stati)
- Move from klog to klog/v2. (#155, @zyiou)
- Added new field flowType in Antrea registry. (#148, @stati)
- Modify aggregation process to consume flow end reason. (#150, @stati)
- Support consuming tcpState in aggregation process. (#151, @zyiou)
- Added tcpState information element for Antrea registry. (#145, @zyiou)
- Added new methods in Set interface to reduce set allocations for user. (#139, @stati)
- Simplified the network address consumption in exporter and collector processes. (#140, @stati)
- Fix standalone collector issue. (#136, @zyiou)
- Modify address resolution method in exporter and collector. (#134, @zyiou)
- Modify the input of Exporting and Collecting process. (#129, @stati)
- Improve testing coverage on IPv6. (#130, @zyiou)
- Add log information for debugging. (#132, @zyiou)
- Fix slicing problem on TCP collector. (#126, @zyiou)
- Validate data records in aggregation process. (#125, @stati)
- Fix testing issues: update TLS certificate in tests (#128, @zyiou), fix flaky tests problem and golangci-lint error (#114, @zyiou).
- Exposed message size limit in exporter. (#115, @zyiou)
- Added a function in aggregation process to delete flow key from flowKeyRecord map without a lock. (#113, @stati)
- Expose fields in AggregateElements and add integration tests. (#104, @zyiou)
Includes all the bug fixes from 0.3.1.
- Supported message size check for UDP transport. (#92, @stati)
- Added stats support in aggregation process. (#99, @stati)
- Added security support (TLS and DTLS) and client authentication for TLS. (#57, #101, @zyiou)
- Added issue templates. (#94, @stati)
- Modified correlating process in aggregation process. (#99, @stati)
- Fixed the unit tests with -race of pkg/exporter (#91, @stati), pkg/collector and pkg/intermediate(#93, @zyiou)
- Simplified standalone collector code. (#83, @stati)
- Improved intermediate process. (#81, @zyiou)
- Exposed collecting process and aggregation process as public struct. (#84, @zyiou)
- Modified versions of some packages in go.mod to keep it consistent with Antrea, the main user of go-ipfix library. (#82, @zyiou)
Includes all the bug fixes from 0.2.1, 0.2.2, 0.2.3, and 0.2.4.
- Added the intermediate process feature for the implementation of IPFIX mediator. (#52, @zyiou)
- Added standalone IPFIX collector. (#71, @stati)
- Added github workflow for unit tests and code generation. (#39, #44, @stati)
- Added code coverage for unit tests and integration tests. (#52, #56, @zyiou)
- Added encoding and decoding support for IPv6 addresses. (#64 @stati)
- Refactored and changed the entites abstraction, specifically sets and records. (#49, @zyiou)
- Refactored encoding support for IPFIX exporter. (#20, @zyiou)
- Changed the InfoElement data type to length association from list to the map. (#58, @shihhaoli)
- Added locks for clients map in the collector process. (#46, @zyiou)
- Change reverse information element naming. (#68, @zyiou)
- Remove unnecessary testing log. (#67, @zyiou)
- Support IPv6 cluster IP field in Antrea repo. (#63, @srikartati)
- Change
DateTimeSeconds
type for information elements touint32
following RFC7011. (#59, @zyiou) - Change PEN number for Antrea to '56506' (assigned by IANA). (#60, @zyiou)
- Change reverse information element and const naming. (#45, @zyiou)
- Fix collector concurrent map writes failure in unit tests. (#42, @zyiou)
- Revert klog version from 2.0 to 1.0. (#33, @zyiou)
- IPFIX collector support based on RFC 7011, which can stream and decode the IPFIX packets. (#13, #21, @zyiou)
- Add new fields related to the Kubernetes network policy to the Antrea registry. (#23 @srikartati)
- Global registry support that initializes both IANA and Antrea registries. (#24, @zyiou)
- Update the klog version to 2.0. (#16, @srikartati)
- IPFIX exporter support based on RFC 7011.
- Support for IANA and Antrea Registries.