{"id":18512796,"url":"https://github.com/vmware/go-ipfix","last_synced_at":"2025-05-16T09:02:36.961Z","repository":{"id":40275968,"uuid":"275306955","full_name":"vmware/go-ipfix","owner":"vmware","description":"An ipfix library in Go","archived":false,"fork":false,"pushed_at":"2025-04-29T21:25:05.000Z","size":6903,"stargazers_count":43,"open_issues_count":19,"forks_count":28,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-29T22:29:26.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vmware.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-27T05:34:59.000Z","updated_at":"2025-04-29T21:25:10.000Z","dependencies_parsed_at":"2023-10-04T03:29:24.964Z","dependency_job_id":"9e003258-cba9-49fa-8038-64aee7db28f1","html_url":"https://github.com/vmware/go-ipfix","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fgo-ipfix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fgo-ipfix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fgo-ipfix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware%2Fgo-ipfix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmware","download_url":"https://codeload.github.com/vmware/go-ipfix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501548,"owners_count":22081526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T15:35:28.871Z","updated_at":"2025-05-16T09:02:36.251Z","avatar_url":"https://github.com/vmware.png","language":"Go","readme":"# GO-IPFIX\n\n## Overview\ngo-ipfix is an IPFIX library that can be used to implement an IPFIX exporter, which can export flow records. go-ipfix follows RFC 7011 and other referenced RFCs. Specifically, this release mainly implements the IPFIX exporting process feature and provides the required IPFIX entities such as information elements, records, sets, message, etc. In addition, this library supports loading IPFIX information elements from IANA registry, reverse information elements (enterprise ID: 29305), and information elements from the private Antrea registry (enterprise ID: 56506) to support [Project Antrea](https://antrea.io/).\n\n## Try it out\nThis IPFIX library can be used to build an exporter. Please check out the [exporter tests](https://github.com/vmware/go-ipfix/blob/main/pkg/exporter/process_test.go) to get an idea on how to build exporter on top of TCP and UDP transport protocols given a IPFIX collector.\n\n### Deploy stand alone IPFIX collector\nTo deploy a released version of the go-ipfix collector, which is used to collect, decode and log the IPFIX records, please choose one deployment manifest from the list of releases. For any given release \u003cTAG\u003e (e.g. v0.1.0), you can deploy the collector as follows:\n\n```shell\nkubectl apply -f https://github.com/vmware/go-ipfix/releases/download/\u003cTAG\u003e/ipfix-collector.yaml\n```\n\nTo deploy the latest version of the go-ipfix collector (built from the main branch), use the checked-in [deployment manifest](https://github.com/vmware/go-ipfix/blob/main/build/yamls/ipfix-collector.yaml):\n\n```shell\nkubectl apply -f https://raw.githubusercontent.com/vmware/go-ipfix/main/build/yamls/ipfix-collector.yaml\n```\n\nWhile deploying the latest version of the go-ipfix collector, port and protocol can be configured by cloning the repository on your local setup and using the commands:\n\n```shell\ncd \u003cdirectory containing this README file\u003e/hack\n./generate-manifest-collector.sh --mode dev --port \u003cport\u003e --proto (tcp|udp) \u003e ../build/yamls/ipfix-collector.yaml\n```\n\nParameter ```--mode dev``` will build the collector from the docker image with the \"latest\" tag.  \nUse ```--port \u003cport\u003e``` to specify the port used by the collector. Default is 4739.  \nUse  ```--proto (tcp|udp)``` to specify the protocol used by the collector. Default is tcp.  \nFor example:\n\n```shell\n./generate-manifest-collector.sh --mode dev --port 4739 --proto tcp \u003e ../build/yamls/ipfix-collector.yaml\n```\n\n### Start a Kafka instance\nTo start a Kafka server with minimum Kubernetes setup, run\n```shell\nkubectl apply -f ./build/yamls/kafka-flow-collector.yaml\n``` \nBroker address will be `kafka-service.kafka.svc:9092`.\nNotice that `KAFKA_ADVERTISED_LISTENERS` for kafka-broker and broker address should be consistent and accessible\nfrom other namespaces. Also, versioned images of kafka-broker `confluentinc/cp-kafka:6.2.0`\nand zookeeper `confluentinc/cp-zookeeper:6.2.0` are used in the set-up. Other\nversions have not been validated.\n\nCurrently, `antrea/kafka-consumer` only supports decoding and logging messages with AntreaFlowMsg proto schema.\n\n## Build Registry\nTo build the registry from [IANA registry](https://www.iana.org/assignments/ipfix/ipfix.xhtml) or [Antrea registry](pkg/registry/registry_antrea.csv), run following commands:\n\n```shell\ngo run pkg/registry/build_registry/build_registry.go [REGISTRY_NAME]\n# REGISTRY_NAME: \"Antrea\", \"IANA\", \"\"(build both registries)\n```\n\nAbove will generate two files: `pkg/registry/registry_antrea.go` and/or `pkg/registry/registry_IANA.go` to enable local registry loading functions.\n\nTo account for changes in either registry, please make sure to re-execute  `build_registry.go` to regenerate corresponding go files.\n## Contributing\n\nThe go-ipfix project team welcomes contributions from the community. If you wish to contribute code and you have not signed our contributor license agreement (CLA), our bot will update the issue when you open a Pull Request. For any questions about the CLA process, please refer to our [FAQ](https://cla.vmware.com/faq). For more detailed information, refer to [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\nGO-IPFIX is licensed under the [Apache License, version 2.0](https://github.com/vmware/go-ipfix/blob/main/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware%2Fgo-ipfix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmware%2Fgo-ipfix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware%2Fgo-ipfix/lists"}