Fetching contributors…
Cannot retrieve contributors at this time
351 lines (261 sloc) 12.8 KB
[+] New/improved feature
[B] Bug fixed
[K] Known issue
[O] Other
[A] API semantics
Change log
[+] added experimental matches from OFDPA-2:
[B] fixed invalid length fields for experimental OXM matches
[B] ensure all padding fields are set to value 0
[+] thread pool
[B] cofport_stats default port_no fixed
[O] improved testing on travis
[A] queue_type be public enum
[B] fix ctimespec operator
[+] crofsock: revised tx-queueing strategy (default txqueue size limited
to 128 messages), API changes to crofctl and crofdpt: all transmission
methods return the queueing result when sending an openflow message:
[B] crofchantest: thread sanitizer friendly
[B] build-system: update OpenSSL dependency
[A] typos in functions fixed
[B] cofmsg: fix copy of cofmsg_features_reply
[+] crofconn: handle_rx_messages optimization
[+] coxmatch: added outputter for ppp(oe) experimental oxmatches
[+] crofconn: hello timeout values decreased
[B] crofconn: call handle_closed in case echo_request_expired
[+] use of __FUNCTION__ instead of __PRETTY_FUNCTION__ is sufficient
[O] Documentation updated wrt. dependencies
[B] crofbase: prevent shadowing of cthread callbacks
[B] made ofp_version atomic
[B] multiple thread related issues found with tsan
[B] crofsock: txqueue order of barrier requests
[+] crofbase: allow set_ctl without creation of a new instance
[B] ctimespec: invalid calculation and data race fixed
[+] travis: print log of failed tests
[+] log exceptions caught in thread
[+] cdptid and cdpid are now basic types
[+] cthread: timer cleanup
[B] tests are now included in dist release
[+] rofl journal replaced with glog
[+] reset txbuffer before sending to comply with ovs and ofagent
[+] clang format added
[+] cthread: cleanup locking and api
[B] heap-use-after-free in crofconn
[B] crofbase: return if accept fails with EAGAIN
[+] cthread: set name of thread
[B] crofbase: heap-use-after-free fixed
[B] crofsock: heap-use-after-free fixed
[B] cthread: use pthread_join so finalize a thread
[B] debug log of OF version number fixed
[+] fixed issues with compilation under GCC6
[+] Extended behaviour of method rofl::crofbase::set_dpt()
[B] crofdpt: do not automatically assign xid to experimenter
[B] crofsock: fixed bug in congestion management
[+] cthread: allow level-triggered file descriptors
[B] crofsock: prevent infinite loop
In case txqueues are not empty tx is rescheduled. The
flag to do so was not cleared and this would cause an
infinite loop. Reset the flag to prevent this.
[B] crofsock: crofsock: set tx_fragment_pending in tx saturation
A packet in the txbuffer would not be sent in case tx
was saturated tx_fragment_pending is set to resend the
packet, that was already cleared from the txqueues.
[B] crofsock: txqueue_size_tx_threshold checking fixed
If txqueue_pending_pkts == 1, the calculation of
txqueue_size_tx_threshold might lead to a never cleared
[B] cthread: don't throw in destructor
[B] crofchantest: fix increments done in threads
num_of_ctl_established and num_of_accepts are incremented
from diffrent threads, hence the test randomly fails or
[B] crofsocktest: fix timeout
timeout was already -1 in CPPUNIT_ASSERT
[K] TLS support broken
crofsocktest: disabling TLS test
[B] cthread: fix edge-triggered behaviour of epoll
pipe still uses level-triggered scheme
[B] crofsock: don't let handle_write_event run at state STATE_CLOSED
[B] crofsock: do not wakeup tx in case its blocked
[B] crofconn: fixed potential race condition during connection
establishment (HELLO negotiation)
[B] crofsock: add rxthread wakeup handler
call recv_message() after connect/EINPROGRESS continuation
[B] crofsock: fixed bug in listening mode
[B] version is broken, do not use
[B] crofchan: fixed a bug introduced in v0.10.3 while fixing
the other bug: actively established connections must not be
removed upon handle_closed()
[B] cthread: check timer for expiration again before calling
[B] crofsock: allow transmission of Echo-Request/Reply messages
even when flow-control is blocking transmission of other
messages received from the application layer
[O] added cclockid class to prevent invalid use of class ctimespec
[+] crofsock: use SO_LINGER option for coordinated shutdown
[+] crofsock: make backlog for listening mode configurable, defaults to
64 established TCP connections
[B] crofconn: fixed potential race condition causing a Hello expiration
[A] crofchan: send CLOSE notification to application when replacing
an existing connection object (restart)
[B] crofchan: fixed bug in handle_closed(): conn was not removed from
crofchan::conns map leading to a double free
[+] more verbose exception handling
[+] asserts to thread handlers
[+] cthread: ignore signals in event loop
[B] coxmatches::copy_matches(): copy experimental matches properly
[B] fixed a race condition in crofsock::send_from_queue()
[+] revised workflow
[+] enhanced flow control
[+] revised exceptions structure
[+] new journaling subsystem replacing logging facility
[+] New internal threading model, running rofl's main ioloop by
application not necessary any more
[O] Revised API of classes cofmsg_group_mod and cofgroupmod
[O] merged logging related pull request #1
[B] fixed stalling situation in crofsock under higher load
[B] making class indent thread aware
[B] fixed buffer bloat like situation in crofqueue under high loads
[O] fixed hex output in some coxmatch classes (Fixed issue #14)
[O] fixed hex output for classes cofgroupmod and cofmsg_group_mod
for group-id. Fixes issue #13.
[B] Distributing missing ctspaddress.h
[B] Fix versioning.m4 for subpackage and out-of-repository builds
[K] Prevent compilation with buggy GCC versions (-O3 opt.)
[+] Workaround for automake 1.14 subdir-objects bug(13928).
[+] Fixed some LLVM related warnings and errors (clang/clang++)
[+][hal] Added NF port extensions
[+][pipeline] Added missing support for OFPP_TABLE
[+][pipeline] Added NF port type extensions
[+][pipeline] Added L2 (ETH_DST, VLAN) l2hash matching algorithm
[B][pipeline] Fixed issue #40 (bug) => set cookie field in Packet-In messages based on flow entry
[+][common] All crofsock instances run in dedicated own thread
[+][common] Revised thread support in ciosrv
[+][common] Revised classes crofconn and crofsock => new scheduling for OpenFlow messages
[+][common] Revised classes crofctl, crofdpt and crofchan => API updated
[B][common] Doxygen documentation updated
[+][common] New thread API added to rofl::cioloop
[B][pipeline] Issue #40 (bug) => invalid cookie field in Packet-In messages for OpenFlow 1.3
(won't fix), fix available in 0.6.0
[B][hal] Updated misleading documentation concerning flow_mod_add/modify calls
[B][common] Fixed issue #39 (bug) => set flag keep_on_runnin gin method cioloop:run() to false, when
terminating the loop
[B][common] Fixed issue #38 (bug) => handling so far uncaught exception in etherswitch::operator<<()
[B][common] Fixed issue #37 (bug) => cofactions::drop_action()
[+][common] Fixed issue #36 (enhancement) => making cofactions::count_action_type() const method
[B][common] Fixed issue #33 (bug) => added fragmentation support for overlong OFP messages to OpenFlow 1.2
[B][pipeline] Fixed default table action for OF1.3 according to spec (backported)
[B][pipeline] Fixed improper byte counter setting for group statistics
[B][pipeline] Fixed bug in the destruction of of1x_stats_group_desc_msg_t
[+][common] Improved OF1.3 support and other fixes
[+][common] Set more useful defaults for cofmsg (e.g. OFP_NO_BUFFER for buffer-id)
[+][pipeline] Improved tracing and logging
[+][pipeline] Improved OF1.3 support
[+][pipeline] Changed default behaviour for table matches/actions bitmaps; all capabilities enabled by default.
[+][pipeline] Added placeholders for WLAN/CAPWAP matches and actions
[+][pipeline] Added PBB_ISID support
[B][pipeline] Fixed group ID 0 is valid
[+][examples] Improved ethswctld, now supporting OF1.0, OF1.2 and OF1.3 simultaneously
[B][pipeline] Fixed bug during OUTPUT action for unknown ports, that could lead to a leakage of PKTs in exceptional situations.
[B][pipeline] Fixed critical bug in __of1x_destroy_all_entries_from_timer_group() leading to a memory corruption
[B][common] cmacaddr: use right macros in sscanf #29
[B][pipeline] Fixed critical bug in __of1x_get_time_ms() for 32bit compilers leading to dead-lock in timers.
[B][common] Fixed bug for match ARP_THA used invalid constants for OXM type
[B][common] cofmatch.h: added method get_ipv6_flabel_value() and get_ipv6_flabel_mask(), according to spec
[B][common] Minor changes to coxmatch.h
[B][common] cofportstatsarray: corrected minor issue in output operator
[B][common] cofmsg_flow_removed::unpack(): invalid length for unpacking matches
[B][common] caddress.h: added missing dump of port number #11
[B][common] Fixed preconditions for nw_tos and nw_proto in OF1.0 #2(reopened)
[B][pipeline] Fixed bug in __of1x_process_instructions(), WRITE_METADATA corrected
[B][pipeline] Fixed metaports for multi-process deployments
[B][pipeline] Fixed bug in __of1x_dump_matches() for IPV6_FLABEL
[K] Automake 1.4 compilation. Please refer to the README.
[B][common] Fixed bug cofactions in method append_action()
[B][pipeline] Fixed compilation issues for 32 bit systems
[K] Automake 1.4 compilation. Please refer to the README.
[B][common] OpenFlow 1.0.1 clarified handling of wildcards #2
[B][common] Fixed bug in port stats for OFP1.2; corrected length check
[+][pipeline] Async APIs not shown in doxygen documentation #1
[K] Automake 1.4 compilation. Please refer to the README.
[+][hal] Improved doxygen documentation
[+][pipeline] Improved doxygen documentation
[+][pipeline] Unified the criteria used to align matches and actions in the pipeline. Changed constructors to use Host Byte Order.
[K] Automake 1.4 compilation. Please refer to the README.
[+] Change in the build system. Documentation is compiled via 'make doc'.
[+][common] Added a new frame class for L2TPv3 (RFC3931): fl2tpv3frame to rofl/common/protocols
[+][common] Added a new logging concept in rofl/common/logging.h: 8 output streams exist
for levels emerg, alert, crit, error, warn, info, notice, debug whose
destinations can be freely configured
[B][common] Fixed a bug in handling of OXM TLVs of type VLAN_VID
[+][common] Added namespaces for OFP versions 1.0, 1.2, 1.3
[+][common] Revised workflow and split of crofdpt_impl and crofctl_impl
[+][common] New logging subsystem
[B][common] Fixed a bug in reverse mapping of pipeline matches to OXM-TLVs
[+][common] Reimplementation of main io loop in ciosrv
- semantics of timer support haven changed
- each timer is referred to by a uint32_t timer_id assigned by the cioloop IO subsystem
- canceling or resetting timers must be done using this timer_id, the opaque value cannot
be used anymore
[+][common] Added experimental OF13 support to various statistics classes including support for duration fields
[+][common] Added experimental OpenSSL support
[+][common] Refactored crofbase interface.
[+][hal] Renamed old Abstract Forwarding API (afa) to Hardware Abstraction Layer (hal). Renamed Forwarding module(fwd_module) to Driver (driver)
[+][pipeline] Changed pipeline to work in Network Byte Order (NBO).
[+][pipeline] Split Packet Processing API calls from other headers, and distributed via "_pp.h" headers to enable inlining.
[+][pipeline] Refactored pipeline platform interfaces.
[+][pipeline] Added monitoring support.
[+][pipeline] Added flow_mod fast validation against flow table and group table capabilities
[+][pipeline] Added support for send_len on OUTPUT actions to CONTROLLER meta-port
[B][pipeline] Fixed VLAN (present/not present) behaviour (all versions)
[B][pipeline] Fixed several bugs for OF1.0 behaviour
[+][common] Added LLC basic frame support in fetherframe.h/cc
[B][common] fixed bug for OF10. Added cofaclist instance (named actions) to avoid use of cofinlist for OF1.0
[B][pipeline] missing _DEPENDENCIES of matching algorithms library added
[B][pipeline] Fixed race condition on accessing num_of_outputs of a matched entry
[B][pipeline] Fixed critical bugs related to of1x_modify_flow_entry_loop(): i) improper behaviour according to spec ii) leak when no rules were modified iii) corruption of state when more than one flow was modified
[+] Adding README and CHANGES