Skip to content

evidence/axiom-evi-apps

Repository files navigation

AXIOM NIC applications


NOTE: This repository is a submodule of axiom-evi project. Please clone the master project from https://github.com/evidence/axiom-evi

This repository contains the following user space application:

  • axiom-init
    • axiom-init is the main daemon running on all nodes of the cluster. It runs the discovery algorithm, sets the routing table and handles control messages. It will be run automatically by the system or through axiom-startup.sh script.
        example:

        # in n-1 nodes
        axiom-init &

        # in the master node
        axiom-init -m &
  • axiom-ethtap
    • axiom-ethtap is another deamon that can run on each nodes in the cluster to map the ethernet frames over AXIOM messages. It creates a virtual ethernet device on top of AXIOM device. It will be run automatically by the system or through axiom-startup.sh script.
        example:
        # start axiom-ethtap with 4 threads
        axiom-ethtap -n 4
  • axiom-info
    • print informations (node-id, interfaces, routing, etc.) about AXIOM NIC
        example:
        # print all information
        axiom-info
        # print nodeid
        axiom-info -n
        # print routing table
        axiom-info -r
  • axiom-whoami
    • print the node-id set after the discovery phase
        example:
        axiom-whoami
  • axiom-ping
    • estimate the round trip time (RTT) between two nodes
        example:
        # Estimate RTT with target node 2. Send a ping message every 0.5 seconds.
        axiom-ping -d 2 -i 0.5
        # Estimante RTT with target node 2. Send 10 ping message every 0.2 seconds.
        axiom-ping -d 2 -c 10 -i 0.2
  • axiom-netperf
    • estimate the throughput between two nodes
        example:
        # start server on one node with 8 threads
        axiom-netperf -s -n 8

        # Estimate the throughput with targat node 3, sending 512 KBytes of data
        # using RAW messages.
        axiom-netperf -d 3 -l 512K -t raw
        # Estimate the throughput with targat node 3, sending 2 MBytes of data.
        # using LONG messages and 2 sending threads.
        axiom-netperf -d 3 -l 2M -t long -n 2
  • axiom-traceroute
    • print the hops needed to reach a specified target node
        example:
        # Print the hops needed to reach the node 1
        axiom-traceroute -d 1
  • axiom-[send|recv]
    • send/receive Axiom RAW/LONG data to/from a node
        examples:
        # receive RAW message
        axiom-recv -t raw
        # receive LONG message
        axiom-recv -t long
        # send RAW data to node (node_id=4) with a specified payload
        axiom-send -t raw -d 4   112 43 0 57 33
        # send RAW data to a neighbour directly connected on a local
        # interface (if_id=1) with a specified payload
        axiom-send -t raw -d 1 --neighbour   67 52 1 0 1 0
        # send LONG data to node (node_id=0) with a specified payload
        axiom-send -t long -d 0   112 43 0 57 33
  • axiom-rdma
    • use RDMA features (remote write, remote read) of Axiom NIC
        examples:
        # dump local RDMA zone (starting from offset 0 to 1023)
        axiom-rdma -m d -s 1k
        # store in the local RDMA zone (starting from offset 1024 to 2043)
        # the bytes ( 1, 2, 3, 4) repeated many times to fill the size
        # specified
        axiom-rdma -m s -o 1k -s 1k 1 2 3 4
        # write 3072 bytes in the RDMA zone of node 3 (offset 2048) reading
        # from the local RDMA zone (offset 1024)
        axiom-rdma -m w -n 3 -o 1k -O 2k -s 3k
        # read 4096 bytes in the RDMA zone of node 2 (offset 7168) reading
        # from the local RDMA zone (offset 0)
        axiom-rdma -m r -n 2 -O 7k -s 4k
  • axiom-run
    • spawn application on multiple nodes
        # run ls on remote node 1 (-n) and redirect (-r) the stdin/stdout/stderr
        axiom-run -n 1 -r ls
        # run ls on all nodes, redirect (-r) the stdin/stdout/stderr and print
        # the node id in each line (-i)
        axiom-run -r -i ls

About

AXIOM UserSpace applications

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages