About Us

People

Research

Publications

Funding

Download




SMesh

Spines

Spread

Secure Spread




























Home Documentation License Download Mailing List Credits


NAME 
     spines - The Spines software daemon


SYNOPSIS 

     spines [-p spines_port] [-l local_address] [[-a destination]*]
            [[-d discovery_address]*] [-w ] [-sf]
            [-m] [-U] [-x time_to_live] [-secure] [-k level] [-W] 


DESCRIPTION 

     spines starts a virtual router daemon. In the current
     distribution, Spines networks are built incrementally. When
     staring a new node/daemon, the user needs to specify in the
     command line to which other existing nodes (if any), this daemon
     will connect.


OPTIONS 

    -p spines_port 
          The port on which the daemon will send and receive messages
          (default 8100). All the daemons in a Spines network need to
          run on the same port.

    -l local_address
          Local IP address that will be used by Spines (default the
          address of the first defined network interface).

    -a destination   
          The address of an existing node participating in a Spines
          network. The current daemon will create a virtual link
          together with the daemon running at this address.  A Spines
          daemon accepts virtual link requests from other daemons, up
          to 255 links per node.

    -d discovery_address
          The IP-multicast address used to auto-discover other Spines
          daemons. A discovery packet is multicasted periodically to
          allow Spines routers that can hear each other to interconnect.
          A node can specify up to 10 different discovery addresses. 

    -w Route_Weight
          Sets the route metric for shortest path computation.
          Route_Weight can be [distance, latency, loss, explat], with
          default, distance.

          distance: every link has an equal cost of 1. The routing
          minimizes the number of hops on each path.

          latency: the cost of a link is equal to its latency. The
          routing minimizes the total latency of each path.

          loss: the cost of each link is defined as -log(1-p), where p
          is the loss rate of that link. The routing chooses paths
          that minimize end-to-end loss rate.

          explat: The cost of each link equals the expected latency of
          packets on that link, considering that lost packets will be
          attempted to be recovered only once. The routing maximizes
          end-to-end delivery ratio within a time constraint for
          packet delay.


    -sf   
          Stream based fairness for reliable links. Makes a reliable
          link between two neighbors behave as multiple streams
          (individual streams that actually go through the link) with
          regard to the TCP congestion control

    -m    
          Accept monitor commands for setting link characteristics
          in order to create virtual topologies (see setlink program).

    -U    
          Unicast only. Instructs the daemon to use Dijkstra for route
          computation instead of Floyd Warshall (all pairs shortest
          path). This allows faster route computation and scalability
          to more router nodes (up to 1000), but Spines will not be
          able to route multicast messages.

    -x time_to_live
          Sets the time (in seconds) until the daemon will exit
          gracefully. If no such time is given, the daemon will run
          indefinitely.

    -secure
          Enables application-level SSL encryption on messages sent
          between Spines overlay daemons. Additional flags must
          be specified when using this options:
          -pub public_key_file_name
          -priv private_key_file_name
          -cacert ca_certificate_file_name
          -pass passphrase

          This option is experimental and available only when compiled
          with -DSPINES_SSL. It is based on DTLS, which is available in
          OpenSSL library version 0.9.8 or greater.

    -k level
          Sets the kernel routing level that should be used when
          manipulating kernel routing tables.  By default, Spines routes
          packets through a user-level router. This option allows Spines
          to control kernel routing tables according to the following
          levels:

          0 -- Set kernel routes to every node in the Spines network.
               This allows Spines to manage kernel routes through the
               overlay topology. 
          1 -- Set unicast kernel routes based on a anycast group
               membership.  By default, 247.0.0.0/8 will map to routes on
               a 10.0.0.0/8 network.  One route entry (on the main route
               table) with one next-hop is entered for each destination.
          2 -- Set unicast kernel routes based on a multicast group
               membership. By default, 227.0.0.0/8 will map to routes
               on a 10.0.0.0/8 network.  For each destination, multiple
               routes (in different routing tables), each with possibly
               multiple next-hop, are entered.

    -W 
          Wireless mode.  Will change some default timers to better
          accommodate a wireless environment.





Questions or comments to:
webmaster_at_spines.org
TEL: (410) 516-5562
FAX: (410) 516-6134
Distributed Systems and Networks Lab
Computer Science Department
Johns Hopkins University
3400 N. Charles Street Baltimore, MD 21218-2686