v1.2.0 RC1
Pre-releaseThis release (1) upgrades Gatekeeper's custom DPDK to version 23.11; (2) brings a new data structure for the flow table, the most important data structure in Gatekeeper; (3) replaces DPDK's deprecated KNI library with Virtio-user; (4) adds valuable information to the log (e.g. flow table occupancy, log level, data and time); among other improvements.
This version improves over v1.1.0 by:
- Adopting
rte_pktmbuf_free_bulk()
(see pull request #631 and issue #435); - Adjusting code style by renaming
lua_State
froml
toL
(see pull request #638); - Adding more information to log entries such as DPDK's error strings, log level, date, and time (see pull requests #639 and #663, and issues #574, #616, and #615);
- Improving code (see pull request #645 and issue #288);
- Fixing the ICE driver (see pull request #648);
- Enabling booting Gatekeeper with either IPv4 or IPv6 only (see pull request #649);
- Introducing the QID library (see pull request #655);
- Adding flow table occupancy to GK statistics (see pull request #659);
- Rewriting the flow table to use Hopscotch hashing (see pull requests #664, #669, and #671, and issues #375 and #660);
- Updating GitHub workflow (see pull requests #667 and #668);
- Fixing LACP disconnect bug (see pull request #666);
- Dropping packets of flows not backed by a flow entry (see pull request #670);
- Replacing DPDK's deprecated KNI library with Virtio-user (see pull request #678, and issues #481, #570, #585, and #674);
- Upgrading Gatekeeper's custom DPDK to version 23.11 (see pull request #680, issues #621, #672, and #677, and commit dd6a89f);
- Rewriting the initialization of network interfaces (see pull request #688).
The biggest goal for version 1.2 of Gatekeeper was to eliminate the need for a custom DPDK. Unfortunately, this is not possible due to the limitations of the DPDK's memory allocation library. More related information is available on issue #455.
This release candidate was developed, tested, and deployed in production using Ubuntu 20.04 LTS. This will make it easier for deployers to start integrating v1.2 into their deployments. Having said that, deployers must be aware that the next release candidate will target Ubuntu 24.04 LTS.