-
Notifications
You must be signed in to change notification settings - Fork 5
/
README
90 lines (65 loc) · 3.13 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
+------------------------------+
| coNCePTuaL |
| ---------- |
| A network correctness and |
| performance testing language |
| |
| By Scott Pakin, |
+------------------------------+
Description
===========
coNCePTuaL is a domain-specific programming language for rapidly
generating programs that measure the performance and/or test the
correctness of networks and network protocol layers. A few lines of
coNCePTuaL code can produce programs that would take significantly
more effort to write in a conventional programming language.
Installation
============
The basic installation procedure is as follows:
./configure <== Creates a Makefile
make <== Uses the Makefile to build coNCePTuaL
make check <== Verifies that coNCePTuaL built properly [optional]
make install <== Installs coNCePTuaL
In practice, however, it is common to pass arguments to configure to
customize coNCePTuaL's configuration. Running "./configure --help"
provides information about the various options and the coNCePTuaL
user's guide (doc/conceptual.pdf) expounds upon these in greater
detail. A non-root user installing coNCePTuaL for his own use (as
opposed to the root user installing coNCePTuaL cluster-wide) will
typically issue a command like the following:
./configure --prefix=/home/pakin/conceptual
The preceding --prefix option tells "make install" to install into
/home/pakin/conceptual/bin, /home/pakin/conceptual/lib,
/home/pakin/conceptual/man, etc. instead of the default
/usr/local/{bin,lib,man}. (Of course, "/home/pakin" should be
replaced with the directory you intend to use as the root of the
coNCePTuaL installation tree.)
To reconfigure coNCePTuaL after running "./configure" and "make", run
"make distclean" to restore coNCePTuaL to its pre-"./configure" state.
Usage
=====
The coNCePTuaL distribution comes with a large set of sample programs.
Here's how one might compile and run a latency test using the c_udgram
backend (which runs locally on a workstation):
# Replace [...] with the appropriate directory for your installation
# (e.g., /usr/local/share/conceptual).
ncptl --backend=c_udgram --output=latency [...]/examples/latency.ncptl
# The following should take a bit of time to run. If the dynamic
# linker can't find the ncptl library then you should append the
# full path of the coNCePTuaL [...]/lib/ directory to your
# LD_LIBRARY_PATH environment variable.
./latency --tasks=2
# Let's look at the results.
cat latency-0.log
See the coNCePTuaL user's guide (doc/conceptual.pdf) for a thorough
description of coNCePTuaL usage.
Copyright and License
=====================
coNCePTuaL is provided under a BSD-ish license. See the LICENSE file
for the full text.
Triad National Security, LLC (Triad) owns the copyright to
coNCePTuaL (identified internally as LA-CC-03-099).
Author
======
Scott Pakin, [email protected]