20 Jul, 2008

1 commit


15 Jul, 2008

7 commits

  • This patch simplifies and speeds up TIPC's algorithm for identifying
    on-node and off-node destinations that overlap a multicast name
    sequence range. Rather than traversing the list of all known name
    publications within the cluster, it now traverses the (potentially
    much shorter) list of name publications made by the node itself, and
    determines if any off-node destinations exist by comparing the sizes
    of the two lists. (Since the node list must be a subset of the
    cluster list, a difference in sizes means that at least one off-node
    destination must exist.)

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

    Allan Stephens
     
  • This patch ensures that TIPC configuration commands that display info
    about neighboring nodes and their links take the spinlocks that
    protect the node list and link lists from changing while the lists
    are being traversed.

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

    Allan Stephens
     
  • This patch ensures that TIPC's multicast message name lookup
    algorithm does individualized scope checking for each published
    name it examines. Previously, scope checking was only done for
    the first name in a name table publication list, which could
    result in incoming multicast messages being delivered to ports
    publishing names with "node" scope, or not being delivered to
    ports publishing names with "cluster" or "zone" scope.

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

    Allan Stephens
     
  • 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 ensurs that accept() returns successfully even when
    the newly created socket is immediately disconnected by its peer.
    Previously, accept() would fail if it was unable to pass back
    the optional address info for the socket's peer before the
    socket became disconnected; TIPC now allows accept() to gather
    peer address information after disconnection. As a bonus, the
    revised code accesses the socket's port more efficiently, without
    the overhead incurred by a reference table lookup.

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

    Allan Stephens
     
  • This patch eliminates an unnecessary pointer dereference when
    accessing a stream-based socket's receive queue.

    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

13 commits

  • This patch defines a few new message header manipulation routines,
    and generalizes the usefulness of another, in preparation for upcoming
    rework of TIPC's message rejection code.

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

    Allan Stephens
     
  • This patch ensures that TIPC doesn't try to access non-existent
    message header fields when rejecting a message with a short header.

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

    Allan Stephens
     
  • This patch eliminates several cases where message header fields
    were being set to the same value twice.

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

    Allan Stephens
     
  • This patch increases the "sequence gap" field of the LINK_PROTOCOL
    message header from 8 bits to 13 bits (utilizing 5 previously
    unused 0 bits). This ensures that the field is big enough to
    indicate the loss of up to 8191 consecutive messages on the link,
    thereby accommodating the current worst-case scenario of 4000
    lost messages.

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

    Allan Stephens
     
  • This patch ensures that the display code that traverses the
    publication lists belonging to a name table entry take its
    associated spinlock, to protect against a possible change to
    one of its "head of list" pointers caused by a simultaneous
    name table lookup operation by another thread of control.

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

    Allan Stephens
     
  • This patch adds a check to prevent TIPC's name table display code
    from listing a name type entry if it exists only to hold subscription
    info, rather than published names.

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

    Allan Stephens
     
  • This patch eliminates the rarely-used "error code" argument
    when initializing a TIPC message header, since the default
    value of zero is the desired result in most cases; the few
    exceptional cases now set the error code explicitly.

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

    Allan Stephens
     
  • This patch eliminates a case where TIPC's link code could try reading
    a field that is not present in a short message header. (The random
    value obtained was not being used, but the read operation could result
    in an invalid memory access exception in extremely rare circumstances.)

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

    Allan Stephens
     
  • This patch enhances TIPC's handler for incoming messages in two
    ways:
    - the trivial, single-use routine for processing non-sequenced
    messages has been merged into the main handler
    - the interface that received a message is now identified without
    having to access and/or modify the associated sk_buff

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

    Allan Stephens
     
  • This patch introduces a new, out-of-range value to indicate that
    a link endpoint does not have an existing session established
    with its peer, eliminating the risk that the previously used
    "invalid session number" value (i.e. zero) might eventually be
    assigned as a valid session number and cause incorrect link
    behavior.

    The patch also introduces explicit bit masking when assigning a
    new link session number to ensure it does not exceed 16 bits.

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

    Allan Stephens
     
  • This patch corrects two problems in the display of error code
    information in TIPC messages when debugging:
    - no longer tries to display error code in NAME_DISTRIBUTOR
    messages, which don't have the error field
    - now displays error code in 24 byte data messages, which do
    have the error field

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

    Allan Stephens
     
  • This patch re-orders & re-groups the error checks performed on
    messages being delivered to native API ports, in order to clarify the
    similarities and differences required for the various message types.

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

    Allan Stephens
     
  • This patch fixes a bug that prevented TIPC from receiving a
    connection setup request message on a native TIPC port.
    The revised connection setup logic ensures that validation
    of the source of a connection-based message is skipped if
    the port is not yet connected to a peer.

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

    Allan Stephens
     

22 May, 2008

5 commits

  • This patch ensures that TIPC's topology service and configuration
    service are shut down before switching into "network mode". This
    ensures that TIPC does not mistakenly try to send unnecessary
    "publication withdraw" messages to other nodes before it is fully
    initialized for sending off-node messages. Note that the node's
    current network address is now updated only after the two services
    are shut down; this ensures that any existing connections to the
    topology server are terminated correctly using the old address.

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

    Allan Stephens
     
  • This patch ensures that the "previous node" field in any existing
    TIPC port message header templates is updated properly when a TIPC
    network address is assigned to the node. (Previously, only the
    "originating node" field was updated.)

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

    Allan Stephens
     
  • This patch optimizes TIPC neighbor discovery code to avoid testing for
    a null node pointer when the pointer is already known to be non-null.

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

    Allan Stephens
     
  • This patch ensures that the simultaneous discovery of the same
    neighboring node by multiple interfaces does not cause TIPC to add
    the node into its internal data structures more than once.

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

    Allan Stephens
     
  • This patch prevents a TIPC configuration command requiring network
    administrator privileges from triggering an skbuff underrun if it
    is issued by a process lacking those privileges. The revised error
    handling code avoids the use of a potentially uninitialized global
    variable by transforming the unauthorized command into a new command,
    then following the standard command processing path to generate the
    required error message.

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

    Allan Stephens
     

20 May, 2008

5 commits

  • This patch contains a set of cosmetic changes to TIPC's network
    topology service subsystem, including:

    - updates to comments (including copyright dates)
    - re-ordering structure fields to group them more logically
    - removal of optional debugging code that is no longer required
    - minor changes to whitespace to conform to Linux coding conventions

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

    Allan Stephens
     
  • This patch modifies TIPC's network topology service so that it
    only requires a single reference table entry per subscriber
    connection, rather than two. This is achieved by letting the
    reference to the server port communicating with the subscriber
    act as the reference to the subscriber object itself. (Since
    the subscriber cannot exist without its port, and vice versa,
    this dual role for the reference is perfectly natural.) This
    consolidation reduces the size of the reference table by 50%
    in the default configuration.

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

    Allan Stephens
     
  • This patch fixes TIPC's topology server so that it does byte swapping
    correctly when endianness conversion is required. (Note: This bug only
    impacted an application if it issues a subscription request to a
    topology server on another node, rather than the server on it's own
    node; since the topology server is normally not accessible by off-node
    applications, most TIPC applications were not impacted by the bug.)

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

    Allan Stephens
     
  • This patch enables TIPC's topology server code to do customized
    endianness conversions on a per-subscription basis. (This
    capability is needed to support the upcoming consolidation of
    subscriber and subscription object references.)

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

    Allan Stephens
     
  • This patch enables TIPC's topology server code to do customized
    overlap detection handling on a per-subscription basis. (This
    capability is needed to support the upcoming introduction of
    multi-cluster TIPC networks.)

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

    Allan Stephens
     

15 May, 2008

1 commit


13 May, 2008

2 commits

  • 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
     
  • This patch enhances the initialization of TIPC's name table
    by removing a pointless spinlock operation, and by using
    kcalloc() to detect requests for an oversized name table.

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

    Allan Stephens
     

09 May, 2008

1 commit


05 May, 2008

5 commits