Releases: ljerezchaves/ofswitch13
Releases · ljerezchaves/ofswitch13
Release 5.2.3
Works with: ns-3.38, ns-3.39, and ns-3.40.
- Configuring
OFSwitch13PriorityQueue::QueueFactory
withDropTailQueue<Packet>
queues by default. - Renaming
OFSwitch13Helper::ChannelType
enumeration values to match coding style. - Enabling checksum computations in
OFSwitch13Helper::CreateOpenFlowChannel()
methods. - This release automatically handles the integration between OFSwitch13 module and BOFUSS library v5.2.x.
Release 5.2.2
Works with: ns-3.38 and ns-3.39.
- Removing
examples/ofswitch13-qos-controller
dependency from the NetAnim module. - Updating buffer timeout operation with millisecond resolution support.
- Updating the maximum size of the parent
OFSwitch13Queue
class with the sum of the maximum size of all internal queues (the operation mode of all internal queues must be the same). - This release automatically handles the integration between OFSwitch13 module and BOFUSS library v5.2.x.
Release 5.2.1
Works with: ns-3.38.
- Replacing
V4PingHelper
byPingHelper
in examples. - This release automatically handles the integration between OFSwitch13 module and BOFUSS library v5.2.x.
Release 5.2.0
Works with: ns-3.36 and ns-3.37.
- Replacing the outdated ofsoftswitch13 name by BOFUSS in the project (source code and documentation).
- Refactoring the BOFUSS ns3lib branch to simplify library compilation.
- Updating
CMakeLists.txt
to automatically download, configure and build the BOFUSS library. - Updating the module documentation to reflect the changes in building process.
- This release automatically handles the integration between OFSwitch13 module and BOFUSS library v5.2.x.
Release 5.1.0
Works with: ns-3.36 and ns-3.37.
- Updating the build system to work with CMake introduced by ns-3.36.
- Updating the source code formatting to match ns-3.37 coding style.
- Updating the module documentation, removing outdated figures.
- New CSMA full-duplex patch for improved channel operation.
- Fixing errors when compiling the project with gcc 11.3.0 in Ubuntu 22.04.1.
- This release requires manual integration between OFSwitch13 module and BOFUSS library v5.1.x.
Release 5.0.1
Works with: ns-3.31, ns-3.32, ns-3.33, ns-3.34, and ns-3.35.
- Updating the
OFSwitch13Queue
class to match the changes introduced in the Queue API by ns-3.31. - Removing DL library dependency to prevent issues with boost library.
- This release requires manual integration between OFSwitch13 module and BOFUSS library v5.0.x.
Release 5.0.0
Works with: ns-3.30.
BE AWARE THAT this release brings incompatible API changes.
- Refactoring the
OFSwitch13Controller::Dpctl*()
methods:- The
OFSwitch13Controller::DpctlExecute()
method has no more overloaded definitions. The target switch (first parameter) must be the switch's datapath IP. Previous signature using thePtr<const RemoteSwitch>
pointer was removed. Users can fix compilation errors by just usingRemoteSwitch::GetDpId()
method when invokingOFSwitch13Controller::DpctlExecute()
. - The
OFSwitch13Controller::DpctlSchedule()
method was deprecated in favor ofOFSwitch13Controller::DpctlExecute()
. When the switch is not connected to the controller, theOFSwitch13Controller::DpctlExecute()
method will automatically schedule the command for execution just after the handshake procedure. This is particularly useful for executing commands when creating the topology, before invokingSimulator::Run()
.
- The
- New
OFSwitch13Device::TableDrop
trace source to notify unmatched packets dropped by flow tables without table-miss entries. - New
TabDrps
column in theOFSwitch13StatsCalculator
output file. - Updating the
OFSwitch13Queue
class to match the changes introduced in the Queue API by ns-3.30. - Updating the
ofswitch13-external-controller
example with a custom topology configuration (this example was tested with the Ryu controller). - Fixing incorrect Ethernet 802.3 packet header parsing.
- Fixing errors when compiling the project with gcc 9.3.0 in Ubuntu 20.04.
- This release requires manual integration between OFSwitch13 module and BOFUSS library v5.0.x.
Release 4.0.0
Works with: ns-3.28 and ns-3.29.
BE AWARE THAT this release brings incompatible API changes.
- Refactoring the OFSwitch13 queue API:
- The
OFSwitch13Queue
class implements the queue interface, extending theQueue<Packet>
class to allow compatibility with theCsmaNetDevice
used byOFSwitch13Port
. Internally, it holds a collection of N (possibly different) queues, identified by IDs ranging from 0 to N-1. TheOFSwitch13Queue::Enqueue()
method uses theQueueTag
to identify which internal queue will hold the packet. - Specialized
OFSwitch13Queue
subclasses can perform different output scheduling algorithms by implementing the virtualOFSwitch13Queue::Peek()
,OFSwitch13Queue::Dequeue()
, andOFSwitch13Queue::Remove()
methods. The last two methods must call theOFSwitch13Queue::NotifyDequeue()
andOFSwitch13Queue::NotifyRemoved()
, respectively, to update statistics and keep consistency with the base class. - The
OFSwitch13Port::QueueFactory
attribute can be used to configure OpenFlow port queue at construction time. - The new
OFSwitch13PriorityQueue
class implements the specialized priority queuing discipline for a collection of N priority queues, identified by IDs ranging from 0 to N-1 with decreasing priority (queue ID 0 has the highest priority). The output scheduling algorithm ensures that higher-priority queues are always served first. TheOFSwitch13PriorityQueue::QueueFactory
andOFSwitch13PriorityQueue::NumQueues
attributes can be used to configure the type and the number of internal priority queues.
- The
- Refactoring the
OFSwitch13Device
class:- Adjusting
OFSwitch13Device::PipelineTables
,OFSwitch13Device::FlowTableSize
,OFSwitch13Device::GroupTableSize
, andOFSwitch13Device::MeterTableSize
attributes at any time. - New
OFSwitch13Device::GetDpId()
method as an alias for theOFSwitch13Device::GetDatapathId()
method. - New
OFSwitch13Device::GetDatapathStruct()
andOFSwitch13Port::GetPortStruct()
methods returning pointers to the BOFUSS library internal structures. - New
OFSwitch13Device::GetDatapathTimeout()
,OFSwitch13Device::GetFlowTableUsage()
,OFSwitch13Device::GetGroupTableUsage()
,OFSwitch13Device::GetMeterTableUsage()
,OFSwitch13Device::GetNControllers()
,OFSwitch13Device::GetBufferEntries()
,OFSwitch13Device::GetBufferUsage()
, andOFSwitch13Device::GetBufferSize()
methods for datapath statistics. - Renaming
OFSwitch13Device::PipelineCapacity
attribute toOFSwitch13Device::CpuCapacity
, - Renaming
OFSwitch13Device::PipelineLoad
traced value toOFSwitch13Device::CpuLoad
, - Renaming
OFSwitch13Device::LoadDrop
trace source toOFSwitch13Device::OverloadDrop
. - Renaming
OFSwitch13Device::GetOFSwitch13Port()
method toOFSwitch13Device::GetSwitchPort()
. - Renaming
OFSwitch13Device::GetPipelineLoad()
method toOFSwitch13Device::GetCpuLoad()
. - Renaming
OFSwitch13Device::GetPipelineCapacity()
method toOFSwitch13Device::GetCpuCapacity()
. - Renaming
OFSwitch13Device::GetFlowEntries()
method toOFSwitch13Device::GetFlowTableEntries()
- Renaming
OFSwitch13Device::GetGroupEntries()
method toOFSwitch13Device::GetGroupTableEntries()
. - Renaming
OFSwitch13Device::GetMeterEntries()
method toOFSwitch13Device::GetMeterTableEntries()
.
- Adjusting
- Refactoring the
OFSwitch13StatsCalculator
class:- New
OFSwitch13StatsCalculator::FlowTableDetails
attribute to dump individual flow table statistics. - Renaming
OFSwitch13StatsCalculator::GetEwmaPipelineLoad()
method toOFSwitch13StatsCalculator::GetEwmaCpuLoad()
. - Renaming
OFSwitch13StatsCalculator::GetAvgPipelineUsage()
method toOFSwitch13StatsCalculator::GetAvgCpuUsage()
. - Renaming column names in first row, removing any special character from them.
- New
- Overriding the
OFSwitch13Helper::InstallSwitch()
method:- When the first parameter is a node container, the method returns an OpenFlow device container.
- When the first parameter is a node pointer, the method returns the OpenFlow device pointer (there's the optional second parameter of a device container that will be configured as switch ports).
- New
OFSwitch13Port::GetPortDevice()
,OFSwitch13Port::GetPortQueue()
andOFSwitch13Port::GetSwitchDevice()
methods. - Increasing the maximum number of OpenFlow switch ports to 4096 (see DP_MAX_PORTS at BOFUSS library)
- Increasing the maximum number of output queues on ports to 32 (see NETDEV_MAX_QUEUES at BOFUSS library)
- Removing the BOFUSS library dependency on the NetBee library.
- Improving the BOFUSS library performance and fixing memory leak errors.
- This release requires manual integration between OFSwitch13 module and BOFUSS library v4.0.x.
Release 3.3.0
Works with: ns-3.28 and ns-3.29.
- Fixing incorrect bitwise comparison in port configuration.
- Fixing incorrect ns-3 version comparison that was preventing module configuration in ns-3.28.1
- New
OFSwitch13Device::PipelineTables
attribute to define the number of flow tables in the pipeline. - Adjusting
OFSwitch13Device::PipelineTables
,OFSwitch13Device::FlowTableSize
,OFSwitch13Device::GroupTableSize
, andOFSwitch13Device::MeterTableSize
attributes at construction time only. - Renaming the
OFSwitch13Device::GetFlowEntries()
method toOFSwitch13Device::GetSumFlowEntries()
. - Renaming the
OFSwitch13StatsCalculator::GetEwmaFlowEntries()
method toOFSwitch13StatsCalculator::GetEwmaSumFlowEntries()
. - This release requires manual integration between OFSwitch13 module and BOFUSS library v3.3.x.
Release 3.2.2
Works with: ns-3.28.
- Fixing errors when compiling the project with gcc 7.3.0 in Ubuntu 18.04.
- Replacing Mercurial by Git as version control system.
- Configuring the BOFUSS library as a git submodule that automatically handle version compatibility.
- This release requires manual integration between OFSwitch13 module and BOFUSS library v3.2.x.