24 Feb, 2011

3 commits

  • Eliminates TIPC's prototype support for message sequence numbering
    on routable connections (i.e. connections requiring more than one hop).
    This capability isn't currently used, and can be removed since TIPC
    only supports systems in which all inter-node communication can be
    achieved in a single hop.

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

    Allan Stephens
     
  • Modifies TIPC's congestion control between a connected port and its
    peer so that it works as documented. The following changes have been
    made:

    1) The counter of the number of messages sent by a port now starts
    at zero, rather than one. This prevents the port from reporting port
    congestion one message earlier than it was supposed to.

    2) The counter of the number of messages sent by a port is now
    incremented only if a non-empty message is sent successfully.
    This prevents the port from becoming permanently congested if
    too many send attempts are unsuccessful because of congestion
    (or other reasons). It also removes the risk that empty hand-
    shaking messages used during connection setup might cause the
    port to report congestion earlier than it was supposed to.

    3) The counter of the number of unacknowledged messages received by
    a port controlled by an internal TIPC service is now incremented
    only if the message is non-empty, in order to be consistent with
    the aforementioned changes.

    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

7 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 the needless initialization
    of static variables to zero.

    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
     
  • It is acceptable to call kfree() with NULL, so these checks are not
    serving any useful purpose.

    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, data structures, and files that make up TIPC's
    user registry. The user registry is no longer needed since the native
    API routines that utilized it no longer exist and there are no longer
    any internal TIPC services that use it.

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

    Allan Stephens
     
  • Simplifies routines and data structures that were intended to allow
    TIPC to support slave nodes (i.e. nodes that did not have links to
    all of the other nodes in its cluster, forcing TIPC to route messages
    that it could not deliver directly through a non-slave node).

    Currently, TIPC supports only networks containing non-slave nodes,
    so this code is unnecessary.

    Note: The latest edition of the TIPC 2.0 Specification has eliminated
    the concept of slave nodes entirely.

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

    Allan Stephens
     

03 Dec, 2010

4 commits

  • Moves the content of the native API routine tipc_ownidentity() into the
    sole routine that calls it, since it can no longer be called in isolation.

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

    Allan Stephens
     
  • Moves the content of each native API message forwarding routine
    into the sole routine that calls it, since the forwarding routines
    no longer be called in isolation. Also removes code in each routine
    that altered the outgoing message's importance level since this is
    now no longer possible.

    The previous function mapping (parent function, and child API) was
    as follows:

    tipc_send2name
    \--tipc_forward2name

    tipc_send2port
    \--tipc_forward2port

    tipc_send_buf2port
    \--tipc_forward_buf2port

    After this commit, the children don't exist and their functionality
    is completely in the respective parent.

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

    Allan Stephens
     
  • Eliminates an unused argument from tipc_multicast(), now that this
    routine can no longer be called by kernel-based applications.

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

    Allan Stephens
     
  • Gets rid of #include statements that are no longer required as a
    result of the merging of obsolete native API header file content
    into other TIPC include files.

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

    Allan Stephens
     

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
     

07 Sep, 2010

1 commit

  • Optimizes TIPC's name table translation code to avoid unnecessary
    manipulation of the node address field of the resulting port id when
    name translation fails. This change is possible because a valid port
    id cannot have a reference field of zero, so examining the reference
    only is sufficient to determine if the translation was successful.

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

    Allan Stephens
     

18 Aug, 2010

1 commit


13 May, 2010

3 commits


15 Jul, 2008

2 commits

  • This patch corrects many places where TIPC routines indicated
    successful completion by returning TIPC_OK instead of 0.
    (The TIPC_OK symbol has the value 0, but it should only be used
    in contexts that deal with the error code field of a TIPC
    message header.)

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

    Allan Stephens
     
  • This patch eliminates an unneeded parameter when creating a low-level
    TIPC port object. Instead of returning both the pointer to the port
    structure and the port's reference ID, it now returns only the pointer
    since the port structure contains the reference ID as one of its fields.

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

    Allan Stephens
     

05 Jun, 2008

5 commits


22 May, 2008

1 commit


13 May, 2008

1 commit

  • This patch eliminates the (very remote) chance of a crash resulting
    from a partially initialized socket or native port unexpectedly
    receiving a message. Now, during the creation of a socket or native
    port, the underlying generic port's lock is not released until all
    initialization required to handle incoming messages has been done.

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

    Allan Stephens
     

15 Apr, 2008

1 commit

  • This patch modifies TIPC's socket code to follow the same approach
    used by other protocols. This change eliminates the need for a
    mutex in the TIPC-specific portion of the socket protocol data
    structure -- in its place, the standard Linux socket backlog queue
    and associated locking routines are utilized. These changes fix
    a long-standing receive queue bug on SMP systems, and also enable
    individual read and write threads to utilize a socket without
    unnecessarily interfering with each other.

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

    Allan Stephens
     

07 Mar, 2008

2 commits


29 Jan, 2008

1 commit

  • The file net/tipc/port.c takes a lock using the function tipc_port_lock and
    then releases the lock sometimes using tipc_port_unlock and sometimes using
    spin_unlock_bh(p_ptr->publ.lock). tipc_port_unlock simply does the
    spin_unlock_bh, but it seems cleaner to use it everywhere.

    The problem was fixed using the following semantic patch.
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    struct port *p_ptr;
    @@

    p_ptr = tipc_port_lock(...)
    ...
    (
    p_ptr = tipc_port_lock(...);
    |
    ?- spin_unlock_bh(p_ptr->publ.lock);
    + tipc_port_unlock(p_ptr);
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Jon Paul Maloy
    Signed-off-by: David S. Miller

    Julia Lawall
     

14 Aug, 2007

1 commit


11 Jul, 2007

1 commit

  • This patch enhances TIPC's stream socket send routine so that
    it avoids transmitting data in chunks that require fragmentation
    and reassembly, thereby improving performance at both the
    sending and receiving ends of the connection.

    The "maximum packet size" hint that records MTU info allows
    the socket to decide how big a chunk it should send; in the
    event that the hint has become stale, fragmentation may still
    occur, but the data will be passed correctly and the hint will
    be updated in time for the following send. Note: The 66060 byte
    pseudo-MTU used for intra-node connections requires the send
    routine to perform an additional check to ensure it does not
    exceed TIPC"s limit of 66000 bytes of user data per chunk.

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

    Allan Stephens
     

26 Apr, 2007

1 commit


11 Feb, 2007

1 commit


02 Nov, 2006

1 commit


19 Oct, 2006

1 commit