|
Change History
|
Hosted by
|
This list reflects changes that have been made to Linux TIPC.
Changes of particular significance are shown in bold.
Many of these entries apply to
all TIPC implementations,
since they utilize a common code base.
TIPC 1.7.6 patches
-
patch repository - apply in order
-
support for SO_RCVTIMEO socket option [details]
-
fix handling of TIPC_CONN_TIMEOUT value of 0 [details]
-
support for SO_RCVLOWAT socket option (for stream sockets only)
TIPC 1.7.6
-
new capabilities
-
support for (one-time) dynamic network address assignment [details]
-
support run-time configuration of default link settings [details]
-
support for Linux kernels 2.6.22-2.6.27
-
broadcast link fixes
-
complete review of broadcast link code to improve reliability
-
prevent permanent congestion of broadcast link [details]
-
prevent premature broadcast message advertisement by sending node [details]
-
prevent spurious broadcast link NACKs on dual LAN setups [details]
-
fix problems with broadcast link statistics collection [details]
-
allow configuration of broadcast link settings [details]
-
speed up retransmission of lost broadcast messages
on redundant LANs [details]
-
unicast link fixes
-
allow creation of more than 2 links to a neighboring node
-
prevent premature discard of large fragmented messages [details]
-
prevent crash caused by simultaneous discovery of neighbor node
on multiple interfaces [details]
-
prevent stale links from interfering with new links [details]
-
expand link "sequence gap" field to 13 bits [details]
-
fixed link retransmit failure problem on redundant LANs [details]
-
fixed problem of lost name table entries
when link flip-flops rapidly [details]
-
added missing locks when displaying node and link info [details]
-
socket-related fixes
-
provide correct error code for unsupported connect() operation [details]
-
prevent crash during initialization of socket or native port [details]
-
fixed race condition causing accept() to fail [details]
-
fixed misleading POLLOUT indication [details]
-
miscellaneous fixes
-
fixed integer-pointer conversion problems affecting 64-bit kernels
-
fixed port-related issues
during TIPC network address configuration [details]
-
fixed skb_under_panic when configuring TIPC
with insufficient process privileges [details]
-
remove latent bug in topology server byte swapping routine [details]
-
eliminate deadlock risk involving topology server [details]
-
prevent delivery/non-delivery of multicast messages
to out-of-scope/in-scope destinations [details]
-
optimization to multicast name lookup algorithm [details]
-
permit processing of incoming packets
while enabling a new bearer [details]
-
prevent device tree from changing
during enabling of Ethernet bearer [details]
-
fixed misleading error code when enabling Ethernet bearers [details]
TIPC 1.7.5
-
socket API changes
-
fixed socket close routine to remove risk of
kernel crash (bug introduced in TIPC 1.7.4)
-
hierarchical network changes
-
added code to purge routing table entries
published by nodes that can no longer be reached
-
fixed cases where routing info might not be
displayed fully by "tipc-config -r"
-
network topology service changes
-
fixed spinlock problems arising when a subscription
event message is rejected by user's application
-
topology server now completes connection setup
immediately when "implied connect" is used
-
miscellaneous changes
-
added support for gianfar driver
-
fixed bug preventing a user's application from
initiating a connection using TIPC's native API
-
can now set maximum number of nodes
in own cluster to a value > 2047
-
tipc-config "-s" option now displays destination
info when querying a remote node
TIPC 1.7.4
-
socket API fixes
-
use fast cloning to improve message performance
-
allow stream socket receive routine to combine
data from multiple TIPC messages
-
eliminated connection-oriented acknowledgement
overhead for connectionless socket traffic
-
minor optimization to socket close routine
-
ensure connect() terminates if socket is shut down
by another thread of control
-
user interface changes
-
renamed "multicast-link" to "broadcast-link"
-
add support for tipc-config "-s" option
that displays TIPC kernel module version
-
provide feedback when log resizing fails
-
miscellaneous changes
-
ensure failed link creation does not corrupt
internal TIPC data structures
-
fixed spinlock problem caused by print buffer chaining
-
prevent crash when broadcast link cannot send to all nodes
-
eliminated a few obsolete internal sanity checks
TIPC 1.7.3
This release is not interoperable
with previous TIPC 1.7 releases!
-
footprint reduction enhancements
-
added code to prevent accidental creation of
multiple links when multiple link support is disabled
-
internal reference table is now 50% smaller
by default, & only initializes entries that are used
-
socket API fixes
-
send routines now return correct value when message
is immediately returned as undeliverable
-
stream socket no longer attempts to create messages
with more than 66000 bytes of user data
-
stream socket now releases lock
if send operation is only partially successful
-
route distribution changes
-
route info now distributed using
new routing message type
-
optimized purging of defunct name table entries
and connections when connectivity is lost
-
fixed cases where name table entries and
connections might not be purged properly
-
route info now stored in distinct routing table
-
name distribution changes
-
fixed recursive use of name table spinlock
-
no longer forwards non-cluster name information
to uni-cluster nodes
-
fixed kernel panic caused by reception of
bundled name distribution message
-
added item size and distribution info fields
to name distribution messages
-
fixed cases where name table entries might not
be distributed fully
-
eliminated potential fragmentation overhead
during bulk name exchanges
-
message-related changes
-
added basic support for receiving
non-contiguous message buffers
-
message reassembly now works correctly when
fragmentation is initiated by non-originating node
-
eliminated slight risk of incorrect routing of
an incoming bundled multicast message
-
improved support for return of undeliverable messages
-
fixed several instances of incorrect access of
message header fields
-
enhanced validation of format of incoming messages
-
optimized endianness conversions when writing
message header fields
-
added code to prevent accidental overwriting of
message header fields
-
optimized trimming of excess message content
-
eliminated unnecessary null pointer check
when discarding message buffers
-
removed prototype support for per-connection
sequence numbering of messages
-
miscellaneous changes
-
now supports up to 8 Ethernet bearers per node
-
enhanced code that handles disabling of
Ethernet bearers
-
improved traffic filtering on
promiscuous Ethernet interfaces
(and simulated Ethernet interfaces in UML)
-
removed inconsistencies between build-time and
run-time advanced configuration settings
-
fixed minor bug in handling of link session numbers
-
eliminated recursive spinlock invocation in
print buffer code
-
chained print buffer operations are now done atomically
to prevent mischaining
-
optimized test to see if a node is up
TIPC 1.7.2
-
hierarchical network support enhancments
-
inter-zone links and inter-zone messaging now works
-
node address restrictions have been relaxed (can now assign arbitrary <Z.C.N>
values)
-
miscellaneous bug fixes in multi-cluster network support
-
footprint reduction enhancements
-
support for redundant links between nodes can now be omitted if not required
-
the number of in-lined routines has been reduced
-
have reduced memory requirements of some data structures & eliminated some
unused routines
-
socket API enhancements
-
revised locking mechanism eliminates a number of race conditions that could
result in incorrect behavior; provides a better solution to the NULL pointer
dereference problem on SMP systems (SF 1527013)
-
now allows an application to send on a socket even if another thread is blocked
trying to receive
-
now validates "how" argument to shutdown() routine
-
a connection-oriented send operation that is blocked by port congestion now
resumes (and fails) if its peer terminates the connection
-
miscellaneous minor enhancements & bug fixes
-
link establishment changes
-
neighbor discovery mechanism (re)establishes links more quickly in certain
failure scenarios
-
now validates that both nodes desire a link before establishing one
-
fixed bugs in node signature code that could generate bogus warnings of a
duplicate node
-
name distribution changes
-
restored support for unbundling name table update messages (accidentally removed
in TIPC 1.7.1)
-
improved performance of bulk name distributions & fixes memory leak on an
error path
-
now issues warning if name table update message cannot be sent
TIPC 1.7.1
-
initial support for multi-cluster networks
-
relaxes constraints on node addressing to permit multi-cluster networks
-
permits node interfaces to establish inter-cluster links (in addition to intra-cluster
links)
-
exchanges "zone scope" service name information between clusters
-
supports message routing between clusters (either by port name or by port id)
-
supports new "-r" option for tipc-config to allow display of routing information
-
initial changes to improve performance
-
intra-cluster name table updates now distributed via broadcast link, rather than
replicast to each node
-
optimized SOCK_STREAM code to avoid unnecessary message fragmentation &
reassembly
-
initial changes to reduce footprint
-
selected capabilities can now be omitted, if not required
(socket API, configuration service, system messages, debug messages)
-
minor pruning of data structures and algorithms
-
enhanced duplicate node address detection capability through addition of node
signature
-
fixed NULL pointer dereference problem on SMP systems (SF 1527013)
-
supports upgrade of existing TIPC clusters to TIPC 1.7 on a node-by-node basis
TIPC 1.6.4 (available in kernel 2.6.27)
-
fixed race condition when creating socket or native port
-
imported most print buffer enhancements from TIPC 1.7.5
-
fixed skb_under_panic when configuring TIPC without
network administrator privileges
-
prevent crash due to simultaneous node discovery by
multiple bearers
-
fixed problems with existing ports
when switching into networking mode
TIPC 1.6.3 (available in kernel 2.6.26)
-
imported all socket API enhancements/fixes from TIPC 1.7.5
-
imported gianfar driver support from TIPC 1.7.5
-
imported some sk_buff handling enhancements from TIPC 1.7.5
-
imported some message header handling enhancements from TIPC 1.7.5
-
imported most reference table enhancements from TIPC 1.7.5
TIPC 1.6.2 (available in kernel 2.6.19)
-
now supports Ethernet VLANs
-
added duplicate node address detection capability
-
added subscription cancellation capability
-
send_stream() now works with buffers >66000 bytes (SF 1517657)
-
added missing lock release in tipc_port_timeout() (SF 1518896)
-
fixed slow link reactivation when link tolerance is large (SF 1548893)
-
publication events are now delivered to applications in chronological order
-
can now list multicast link on an isolated node
-
enhanced print buffer code (now supports small buffer sizes; fixed bugs; added
comments)
-
optimized wake up logic when socket has no waiting processes
-
now returns error message in response to an unknown configuration command
TIPC 1.6.1 (available in kernel 2.6.18)
-
contains all fixes from TIPC 1.5.10, 1.5.11, and 1.5.12
-
corrected latent disc_timeout() problem introduced in TIPC 1.6.0
TIPC 1.6.0 (available in kernel 2.6.16)
-
contains all fixes from TIPC 1.5.9
-
internal code restructuring to conform to Linux kernel conventions
-
restructured include files; now have kernel-specific version of tipc.h
-
removed unneeded support for old Linux kernel & Netlink versions
-
revised licensing text& removed old modification histories
-
added "tipc_" prefix to routine names
-
removed "inline" from routines in .c files
-
fixed compilation errors when optional CONFIG_TIPC_DEBUG flag unspecified
TIPC 1.5.12
-
now supports promiscuous Ethernet interfaces correctly
-
fixed null pointer dereference in bcast_peek_nack()
-
fixed privilege checking typo in desk_name_check()
-
fixed tipc-config compiler warnings relating to getsockname() arguments
-
initial TIPC activation log message now includes TIPC version number
-
fixed skb_over_panic caused by link_bundle_buf() (SF 1493679)
-
fixed tipc-config -l error if max_nodes = 1000 (SF 1493996)
-
fixed compilation errors when optional CONFIG_TIPC_DEBUG flag unspecified
TIPC 1.5.11
-
now logs internal TIPC errors and attempts to continue instead of triggering a
kernel panic
-
fixed link switchover bugs
-
link switchover now occurs when switching from an active link to a standby link
-
failure of a standby link no longer initiates link switchover
-
links now display correct # received packets following reactivation
-
tipc-config fixes
-
all options that are mode-dependent are now rejected gracefully
-
"-be" option has been fixed to ensure the correct interface is always enabled
-
multiple occurrences of "-be" and "-bd" options are now handled correctly
-
"-p" option no longer shows anonymous ports temporarily created by the query
itself
-
socket API fixes
-
optimized performance of error checking during socket creation
-
requesting "unbind all names" on an unnamed socket no longer returns an error
-
connect() now detects a destination address that is missing or too short
-
optimized argument validation done by connect()
-
implied connect now saves destination name for later retrieval as ancillary data
-
connection-oriented send now checks socket state when retrying congested send
-
stream socket send now indicates partial success when only some of the specified
data is sent
-
recvmsg() now returns ancillary data for TIPC with the correct level (SOL_TIPC)
-
can now return destination name of form {0,x,y} via ancillary data
-
system message enhancements
-
wording for many messages is now more user-friendly
-
new messages have been added, including identification of cause of all link
resets
-
additional info is provided for failed media and bearer configuration operations
-
fixed 2 memory leaks arising during "out of memory" error recovery
-
fixed memory leak in link_send() arising when destination is unreachable
-
reduced risk of stack overflow during multicast by eliminating large local
variables
-
enhanced publication removal algorithm using simplified comparisons in several
places
-
optimized name table sanity check when shutting down TIPC
-
added support for MODULE_VERSION capability
TIPC 1.5.10
-
links now ignore "stale" incoming messages that specify incorrect destination
node
(fixes link flopping and name table inconsistency problems when a node is re-numbered)
-
multicast link retransmit failure now resets all links to "nacking" node (no
longer crashes)
-
native API now allows ports to receive multicast messages
(prevents panic if topology server receives a multicast message due to
application error)
-
fixed name table corruption when unable to add a new instance of an existing
type
(no longer crashes when creating more than 3200 instances of a given type)
-
corrected upper bound check in tipc_init()
-
corrected potential misuse of tipc_media_addr structure
-
suppressed appearance of unsupported "-ps" and "-psr" options in tipc-config
help output
TIPC 1.5.9
-
TIPC name types from 8 to 63 are now reserved
-
multicast code has been significantly reworked to ensure correct operation in
abnormal scenarios
-
multicast no longer hangs in the presence of pre-TIPC 1.5 nodes
-
enhanced range checking of bearer/link priorities
-
added per-media default priority support
-
tipc_attach() now returns POSIX-based errno value
-
eliminated non-standard TIPC_CONGESTION errno value
-
link statistics message length profile now sums nearer to 100%
TIPC 1.5.8
-
enhanced name table display capability of tipc-config [better search, added
scope info]
-
fixed socket memory allocation bug affecting pre-2.6.12 kernels
-
link retransmission requests now issued as per TIPC specification
-
fixed bug in link MTU negotiation
-
reworked link timers to support rapid recovery from failures, as per TIPC
specification
-
link statistics reset now requires network admin privileges
-
fixed incorrect asserts in nameseq_remove_publ()
-
eliminated very unlikely chance of duplicate publication keys causing name table
corruption
-
no longer invokes "stale" user callback function after tipc_detach() has been
invoked
TIPC 1.5.7
-
fixed timer deadlock bug arising on SMP systems
-
unicast links now support MTU negotiation
-
links now use full bearer MTU wherever possible
-
link window sizes now restricted to prevent inconsistent queue limits
-
now correctly negotiates link tolerance during activation
-
topology server now sends event messages at same importance as subscriber's
connect request
-
stream socket now discards a partially consumed message during shutdown/close
-
fixed bug with configuration command authorization done through Netlink
-
now discards incoming messages whose size differs from size info in TIPC header
-
node discovery code now validates node id
-
minor cleanup of logging of errors and warnings
TIPC 1.5.6
-
socket code now supports pre-2.6.12 and post-2.6.13 kernels
-
SOCK_STREAM receive routine now sane
-
maximum link setup delay now ~2 sec (rather than ~2 min) when a failed bearer
recovers
-
Ethernet bearers now updated when MTU size changes
-
now uses full Ethernet MTU size when calculating maximum packet size
-
fixes "protocol is buggy" warning generated on promiscous interfaces
-
fixes problems with disabled Ethernet bearers not being cleaned up properly
-
fixes race condition between publication cleanup and upcoming link
-
tipc-config -nt now displays full name table by default
-
improved display of port information
-
added support for display and reset of link statistics
-
fixed various bugs in tipc-config
-
now displays correct syntax when invalid values supplied with -lp, -lt, or -lw
-
now fully parses link names with -lp, -lt, and -lw
-
now parses optional fields of -be correctly
-
now displays correct message when -be or -bd fails
-
fixed formatting bug with -nt
-
now generates error if passed a command argument that is not an option
-
now cleanly rejects attempt to configure illegal node address with a final digit
of 0
-
now ready to support revised Netlink API
-
reworked signal and timer code to improve performance & simplify logic
-
eliminated risk of rogue link setup timers causing problems when is TIPC
unloaded
-
added some missing spinlocks in print buffer code
-
print buffers now return partial data when dumped after overflow
-
"per-link debug info" now works
-
some clean up of link-related code
TIPC 1.5.5
-
socket code now compatible with 2.6.12 kernel
-
fixed spinlock problems with network topology service
-
all socket calls now require AF_TIPC in user-supplied socket addresses
-
multicast no longer sends to ports outside of specified range
-
multicast fragmentation now works correctly
-
fixed alignment bug in tipc-config that allowed incorrect processing of returned
messages
-
eliminated risk of link/bearer problems due to non-Posix compliant strncpy()
routine used by some Linux kernels
-
connection flow control now works for native API users, such as topology server
-
eliminated risk of unwanted message fragmentation under rare conditions
-
eliminated risk of buffer leak when unable to send message off-card
-
tipc-config no longer prints corrupted error strings on some systems
-
fixed race condition between neighbour discovery and tipc_stop_net()
TIPC 1.5.4
-
the first "beta" quality release for TIPC