All notable changes to OpenVNet will be documented in this file. This project adheres to Semantic Versioning.
-
Added
A new features calledsegment
that accurately simulates L2 segments, allowing connected interfaces to freely set and change their IP addresses without making OpenVNet aware of them. -
Added
New featurepromiscuous interface mode
, allowing us to connect physical networks to OpenVNet's virtual networks on an L2 level without the need for VNet Edge. -
Added
The option to have VNA take control of an Open vSwitch running on another host. -
Added
The option to run datapaths without learning flows. This is done so OpenVNet can work on hardware that doesn't support learning flows. -
Added
Batch processing to vnctl. This enables you to process multiple commands at once by reading them from a file or STDIN. -
Added
interface_network/route_link associations that can be persistent even without an IP lease or route. -
Added
The possibility to re-use the UUID of deleted items. -
Added
Filter manager now supports stateful firewalls. -
Changed
It is no longer possibly to directly modify an IP lease through the WebAPI. In order to preserve network state history, IP leases need to be deleted and recreated. -
Changed
the static filter webapi parameters to be more inline with the current functionality. -
Changed
We now use the PIO library to manage MAC addresses. -
Changed
Refactored IP/MAC leases and wrote a bunch more unit tests for them. -
Changed
Refactored topology manager before adding new functionality. -
Removed
VNet Edge. Connecting OpenVNet to other networks on the L2 level should now be done by usingpromiscuous interface mode
instead. -
Removed
Security groups. Use filters instead for firewall functionality.
-
Added
A newtopology manager
that automatically createsdatapath_network
anddatapath_route_link
entries in the database. -
Added
A new simple firewall feature alongside the existing security groups. Security groups will eventually be ported to use this. -
Added
Automatic MAC address assignment usingmac range groups
. -
Added
Vnctl commands for the creation and deletion of static network address translation. -
Added
Error handling for IPv4 addresses in the wrong subnet as early as the WebAPI. -
Removed
Thebroadcast_mac_address
parameter in the WebAPI's datapaths endpoint. Usemac_address
instead. -
Changed
Optimized manager initialization code so no events can be processed before the targeted managers are properly initialized. -
Deprecated
Thetype
parameter in the WebAPI's network_services endpoint. Usemode
instead. -
Changed
Added a default value offalse
to allis_deleted
flags in the database. Now OpenVNet can be used with MySQL's STRICT mode. -
Changed
Themac_address
parameter in the WebAPI'sdatapath_networks
anddatapath_route_links
endpoints are no longer required. OpenVNet will now generate them if not provided. -
Changed
Use different priority for flows depending on their prefix in order to ensure that e.g. 10.10.10.0/24 gets handled before 10.10.0.0/16. -
Fixed
An issue where vna could retrieve network resources from vnmgr while their related resources were not fully loaded yet. -
Fixed
Several minor bugfixes.
-
Added
Warning messages in the log when managers receive events with invalid parameters. -
Added
A ruby gem for accessing the WebAPI. (https://rubygems.org/gems/vnet_api_client) -
Added
Error handling for when a user tries to create an IP address outside of its subnet range. -
Deprecated
Thebroadcast_mac_address
parameter in the WebAPI's datapaths endpoint. Usemac_address
instead. -
Changed
Updated the ruby gems dependencies to their most recent versions where possible. -
Changed
The command line arguments to thevnflows-monitor
debug tool now use a more common format. -
Changed
Movedvnctl
to the client directory. -
Fixed
An issue where VNet Edge related flows were not always created correctly. Edge is now no longer considered experimental. -
Fixed
An issue where Celluloid would some times assume that the main Trema thread was actually a Celluloid thread. -
Fixed
Code cleanup and minor bug fixes in datapath manager. -
Fixed
An issue where events could get processed before managers were initialized, causing race conditions.
The first numbered OpenVNet release.
-
Added
Processvna
which acts as an OpenFlow controller for Open vSwitch. -
Added
Processvnmgr
which acts as a database frontend and pushes events tovna
. -
Added
Processwebapi
which acts as a user interface. -
Added
Two protocols to support virtual networking.- MAC2MAC, our own original protocol for virtual networking on top of a physical L2 connection.
- GRE for virtual networking on top of a physical L3 connection.
-
Added
Simulated DHCP service to assign IP addresses to network interfaces. -
Added
L3 routing between virtual networks. -
Added
Single hop L3 routing between physical and virtual networks. -
Added
Security groups feature for implementing per-interface firewalls. -
Added
Connection tracking feature that simulates stateful firewalls in Open vSwitch's stateless world. -
Added
Integration with Wakame-vdc. (http://wakame-vdc.org) -
Added
VNet Edge feature that allows virtual networks to communicate on L2 with legacy networks. (Experimental)