25 Jun, 2011

2 commits

  • Performs cosmetic cleanup of the symbolic names used to specify TIPC
    payload message header sizes. The revised names now more accurately
    reflect the payload messages in which they can appear. In addition,
    several places where these payload message symbol names were being used
    to create non-payload messages have been updated to use the proper
    internal message symbolic name.

    No functional changes are introduced by this rework.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Fixes a minor error in the title of one of the message size profiling
    values printed as part of TIPC's link statistics.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     

11 May, 2011

6 commits

  • Create a helper routine to enqueue a chain of sk_buffs to a link's
    transmit queue. It improves readability and the new function is
    anticipated to be used more than just once in the future as well.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Rework TIPC's message sending routines to take advantage of the total
    amount of data value passed to it by the kernel socket infrastructure.
    This change eliminates the need for TIPC to compute the size of outgoing
    messages itself, as well as the check for an oversize message in
    tipc_msg_build(). In addition, this change warrants an explanation:

    - res = send_packet(NULL, sock, &my_msg, 0);
    + res = send_packet(NULL, sock, &my_msg, bytes_to_send);

    Previously, the final argument to send_packet() was ignored (since the
    amount of data being sent was recalculated by a lower-level routine)
    and we could just pass in a dummy value (0). Now that the
    recalculation is being eliminated, the argument value being passed to
    send_packet() is significant and we have to supply the actual amount
    of data we want to send.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Modifies a TIPC send routine that did not discard the outgoing sk_buff
    if it was not transmitted because of link congestion; this eliminates
    the potential for buffer leakage in the many callers who did not clean up
    the unsent buffer. (The two routines that previously did discard the unsent
    buffer have been updated to eliminate their now-redundant clean up.)

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Modifies the routine that fragments an existing message buffer to
    use similar logic to that used when generating fragments from an iovec.
    The routine now creates a complete chain of fragments and adds them to
    the link transmit queue as a unit, so that the link sends all fragments
    or none; this prevents the incomplete transmission of a fragmented
    message that might otherwise result because of link congestion or
    memory exhaustion. This change also ensures that the counter recording
    the number of fragmented messages sent by the link is now incremented
    only if the message is actually sent.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Eliminates code that restricts a link's counter of its fragmented
    messages to a 16-bit value, since the counter value is automatically
    restricted to this range when it is written into the message header.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Eliminates code that sets the link selector field in the header of
    fragmented messages, since this information is never referenced.
    (The unnecessary initialization was harmless as it was over-written
    by the fragmented message identifier value before the fragments were
    transmitted.)

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     

31 Mar, 2011

1 commit


14 Mar, 2011

7 commits

  • Eliminates a routine that is used in handling messages arriving from
    another cluster or zone. Such messages can no longer be received by TIPC
    now that multi-cluster and multi-zone network support has been eliminated.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Gets rid of all remaining code relating to ROUTE_DISTRIBUTOR messages.
    These messages were only used in multi-cluster and multi-zone networks,
    which TIPC no longer supports. (For safety, TIPC now treats such messages
    the same way that it handles other unrecognized messages.)

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Enhances link creation code as follows:

    1) Detects illegal attempts to add a requested link earlier in the
    link creation process. This prevents TIPC from wasting time
    initializing a link object it then throws away, and also eliminates
    the code needed to do the throwing away.

    2) Passes in the node object associated with the requested link.
    This allows TIPC to eliminate a search to locate the node object,
    as well as code that attempted to create the node if it doesn't
    exist.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Ensures that the "redundant link exists" field of the LINK_PROTOCOL
    messages sent by a link endpoint is set if and only if the sending
    node has at least one other working link to the peer node. Previously,
    the bit was set only if there were at least 2 working links to the peer
    node, meaning the bit was incorrectly left unset in messages sent by a
    non-working link endpoint when exactly one alternate working link was
    available. The revised code now takes the state of the link sending
    the message into account when deciding if an alternate link exists.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • All the other boolean like msg_set_X(m) operations don't
    export both a msg_set_X(a) and a msg_clear_X(m), but instead
    just have the single msg_set_X(m, val) variant.

    Make the redundant_link one consistent by having the set take
    a value, and delete the msg_clear_redundant_link() anomoly.
    This is a cosmetic change and should not change behaviour.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Function names like "tipc_node_has_redundant_links" are unweildy
    and result in long lines even for simple lines. The "has" doesn't
    contribute any value add, so dropping that is a slight step in the
    right direction. This is a cosmetic change, basic result of:

    for i in `grep -l tipc_node_has_ *` ; do sed -i s/tipc_node_has_/tipc_node_/ $i ; done

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • Removes support for the timestamp field of TIPC's link protocol messages.

    This field was previously used to hold an OS-dependent timestamp value
    that was used to assist in debugging early versions of TIPC. The field
    has now been deemed unnecessary and has been removed from the latest TIPC
    specification. This change has no impact on the operation of TIPC since
    the field was set by TIPC, but never referenced.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     

24 Feb, 2011

8 commits

  • Ensure that the routine that starts up processing on a newly created
    link endpoint takes the spinlock of the node object that owns the link,
    to prevent possible conflicts with processing involving other links
    owned by that node object.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Ensures that a link reset or activate message has a "probe" field
    of zero. (This field is currently unused in these messages, but this
    could potentially change in future versions of TIPC.)

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Enhances TIPC's unicast and broadcast link code to update the transmit
    queue maximum size counter in a single place, namely the routine that
    adds messages to the queue. This ensures that the maximum size statistic
    reported for unicast links is completely accurate, rather than being
    partially based on statistical sampling.

    The changes to link.h are just documenting the roles of the variables.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Allows the broadcast link to track the node that is requesting a retransmit
    in a new field dedicated to that purpose. This replaces the existing
    mechanism that (ab)uses an existing node structure linked list field to do
    the tracking.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Corrects print statements that use %x to print pointer values to use
    %p instead, so that 64-bit pointer values are displayed correctly.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Enhances TIPC link code to ignore an invalid link tolerance value
    contained in an incoming LINK_PROTOCOL message, rather than
    processing the value and potentially causing a divide-by-zero error.

    Also add a compile-time check that catches attempts to redefine
    TIPC's minimum link tolerance value in a manner that might result
    in the same divide-by-zero error at run-time.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Combines two distinct structures containing information about a TIPC bearer
    into a single structure. The structures were previously kept separate so
    that public information about a bearer could be made available to plug-in
    media types using TIPC's native API, while the remaining information was
    kept private for use by TIPC itself. However, now that the native API has
    been removed there is no longer any need for this arrangement.

    Since one of the structures was already embedded within the other, the
    change largely involves replacing instances of "publ.foo" with "foo".
    The changes do not otherwise alter the operation of TIPC bearers.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     
  • Merge two distinct structures containing information about a TIPC port
    into a single structure. The structures were previously kept separate
    so that public information about a port could be made available to
    applications using TIPC's native API, while the remaining information
    was kept private for use by TIPC itself. However, now that the native
    API has been removed there is no longer any need for this somewhat
    confusing arrangement.

    Since one of the structures was already embedded within the other, the
    change largely involves replacing instances of "publ.foo" with "foo".
    The changes do not otherwise alter the operation of TIPC ports.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker

    Allan Stephens
     

02 Jan, 2011

6 commits

  • Cleans up TIPC's source code to eliminate the presence of unnecessary
    use of {} around single statements.

    These changes are purely cosmetic and do not alter the operation of TIPC
    in any way.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Cleans up TIPC's source code to eliminate assigning values to variables
    within conditional expressions, improving code readability and reducing
    warnings from various code checker tools.

    These changes are purely cosmetic and do not alter the operation of TIPC
    in any way.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Cleans up TIPC's source code to eliminate deviations from generally
    accepted coding conventions relating to leading/trailing white space
    and white space around commas, braces, cases, and sizeof.

    These changes are purely cosmetic and do not alter the operation of TIPC
    in any way.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Eliminates most link-specific debugging code in TIPC, which is now
    largely unnecessary. All calls to the link-specific debugging macros
    have been removed, as are the macros themselves; in addition, the optional
    allocation of print buffers to hold debugging information for each link
    endpoint has been removed. The ability for TIPC to print out helpful
    diagnostic information when link retransmit failures occur has been
    retained for the time being, as an aid in tracking down the cause of
    such failures.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Eliminates obsolete calls to two of TIPC's main debugging macros, as well
    as a pair of associated debugging routines that are no longer required.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Eliminates routines and data structures that were intended to allow
    TIPC to route messages to other clusters. Currently, TIPC supports only
    networks consisting of a single cluster within a single zone, so this
    code is unnecessary.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     

03 Dec, 2010

2 commits


17 Oct, 2010

1 commit

  • Do some cleanups of TIPC based on make namespacecheck
    1. Don't export unused symbols
    2. Eliminate dead code
    3. Make functions and variables local
    4. Rename buf_acquire to tipc_buf_acquire since it is used in several files

    Compile tested only.
    This make break out of tree kernel modules that depend on TIPC routines.

    Signed-off-by: Stephen Hemminger
    Acked-by: Jon Maloy
    Acked-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    stephen hemminger
     

14 Oct, 2010

1 commit

  • Remove all instances of legacy, or as yet to be implemented code
    that is currently living within an #if 0 ... #endif block.
    In the rare instance that some of it be needed in the future,
    it can still be dragged out of history, but there is no need
    for it to sit in mainline.

    Signed-off-by: Paul Gortmaker
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Paul Gortmaker
     

24 Sep, 2010

1 commit


18 Aug, 2010

2 commits

  • Ensure that TIPC does not re-establish communication with a
    neighboring node until it has finished updating all data structures
    containing information about that node to reflect the earlier loss of
    contact. Previously, it was possible for TIPC to perform its purge of
    name table entries relating to the node once contact had already been
    re-established, resulting in the unwanted removal of valid name table
    entries.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Add a check to tipc_recv_msg() to ensure it discards messages
    arriving on a newly disabled bearer. This is needed to deal with a
    race condition that can arise if the bearer is in the midst of being
    disabled when it receives a message. Performing the check after
    tipc_net_lock has been taken ensures that TIPC's bearers are in a
    stable state while the message is being processed.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     

13 May, 2010

3 commits

  • These functions have enough code in them such that they
    seem like sensible targets for un-inlining. Prior to doing
    that, this adds the tipc_ prefix to the functions, so that
    in the event of a panic dump or similar, the subsystem from
    which the functions come from is immediately clear.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • Rather than live in link.c where they can only be used in that file alone,
    these helper routines are better served by being in link.h

    Relocated are the following:

    link_working_working
    link_working_unknown
    link_reset_unknown
    link_reset_reset
    link_blocked
    link_congested

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens
     
  • This is just a straight return of a field; there is no
    value in the abstraction of hiding it behind a function.

    Signed-off-by: Allan Stephens
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Allan Stephens