aboutsummaryrefslogtreecommitdiffstats
path: root/metis/documentation/manpage
diff options
context:
space:
mode:
Diffstat (limited to 'metis/documentation/manpage')
-rw-r--r--metis/documentation/manpage/HOWTO-ForwarderConfig188
-rw-r--r--metis/documentation/manpage/Makefile.am26
-rw-r--r--metis/documentation/manpage/metis.cfg.5202
-rw-r--r--metis/documentation/manpage/metis.cfg.5.html468
-rw-r--r--metis/documentation/manpage/metis.cfg.5.pdfbin0 -> 11340 bytes
-rw-r--r--metis/documentation/manpage/metis.cfg.5.txt241
-rw-r--r--metis/documentation/manpage/metis_control.179
-rw-r--r--metis/documentation/manpage/metis_control.1.html280
-rw-r--r--metis/documentation/manpage/metis_control.1.pdfbin0 -> 6514 bytes
-rw-r--r--metis/documentation/manpage/metis_control.1.txt87
-rw-r--r--metis/documentation/manpage/metis_daemon.1138
-rw-r--r--metis/documentation/manpage/metis_daemon.1.html405
-rw-r--r--metis/documentation/manpage/metis_daemon.1.pdfbin0 -> 8628 bytes
-rw-r--r--metis/documentation/manpage/metis_daemon.1.txt159
14 files changed, 2273 insertions, 0 deletions
diff --git a/metis/documentation/manpage/HOWTO-ForwarderConfig b/metis/documentation/manpage/HOWTO-ForwarderConfig
new file mode 100644
index 00000000..df7d32cd
--- /dev/null
+++ b/metis/documentation/manpage/HOWTO-ForwarderConfig
@@ -0,0 +1,188 @@
+#
+# Copyright (c) 2017 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+==================================
+HOWTO-ForwarderConfig
+==================================
+
+Version 1.0 5/23/14 Marc
+Version 1.1 4/6/15 Marc - updated for symbolic names
+
+------------
+Abstract
+------------
+This document describes how to configure the forwarder using the
+command-line utility.
+
+------------
+Starting
+------------
+From the Distillery directory execute the "metis_control" program
+
+Distillery> build/bin/metis_control
+
+This will begin an interactive shell to configure the forwarder. Use
+the "help" command to see available options.
+
+Alternatively, you can use one of the many command-line options to
+execute a specific command without using the interactive mode.
+
+All configuration lines may be placed in a configuration file and used
+with the "--config file" command-line option to metis_daemon.
+
+------------
+Options
+------------
+
+Executing "metis_control help" will display this message:
+
+ Command-line execution:
+ metis_control [--keystore <keystorepath>] [--password <password>] command
+
+ Interactive execution:
+ metis_control [--keystore <keystorepath>] [--password <password>]
+
+ If the keystore is not specified, the default path is used. Keystore must exist prior to running program.
+ If the password is not specified, the user will be prompted.
+
+ Available commands:
+ help add
+ help list
+ help quit
+ help remove
+ help set
+ help unset
+
+===== Listeners
+
+> help add listener
+commands:
+ add listener <symbolic> <protocol> <localAddress> <PortOrEtherType>
+
+ symbolic: User defined name for listener, must start with alpha and be alphanum
+ protocol: tcp | udp | ether
+ localAddress: IPv4 or IPv6 or hostname or interface name (see examples)
+ PortOrEtherType: TCP/UDP port or EtherType (base 10 or use 0x for base 16)
+
+Notes:
+ The local address must be on the system (see 'help list interfaces' command).
+ For Ethernet, the broadcast and CCNx group address will also be added.
+ The symblic name must be unique or the forwarder will reject it.
+
+Examples:
+ Listens to 192.168.1.7 on tcp port 9695
+ add listener homenet tcp 192.168.1.7 9695
+
+ Listens to IPv6 localhost on udp port 9695
+ add listener localhost6 udp ::1 9695
+
+ Listens to interface 'en0' on ethertype 0x0801
+ add listener nic0 ether en0 0x0801
+
+===== Connections
+
+> help add connection udp
+add connection udp <symbolic> <remote_ip|hostname> <remote_port> [<local_ip|hostname> [<local_port>]]
+ <symbolic> : symbolic name, e.g. 'conn1' (must be unique, start with alpha)
+ <remote_ip | hostname> : the IPv4 or IPv6 or hostname of the remote system
+ <remote_port> : the remote TCP port
+ <local_ip> : optional local IP address to bind to
+ <local_port> : optional local TCP port, random if not specified
+
+Examples:
+ add connection udp conn1 1.1.1.1 1200
+ opens a connection to IP address 1.1.1.1 port 1200 using the best local
+ interface and random local port.
+ add connection udp barney2 fe80::aa20:66ff:fe00:314a 1300
+ opens connection to IPv6 address on port 1300.
+
+ add connection udp conn0 1.1.1.1 1200 2.2.2.2 1300
+ opens a connection to 1.1.1.1 on port 1200 from the local address 2.2.2.2 port 1300
+
+ add connection udp conn3 ccn.parc.com 9695
+ opens a connection to the host 'ccn.parc.com' on port 9695.
+ Maybe an IPv4 or IPv6 connection as the name is resolved and connectivity permits.
+
+A UDP connection will be usable immediately, even if the remote side has not accepted.
+
+> help add connection tcp
+add connection tcp <symbolic> <remote_ip|hostname> <remote_port> [<local_ip|hostname> [<local_port>]]
+ <symbolic> : symbolic name, e.g. 'conn1' (must be unique, start with alpha)
+ <remote_ip | hostname> : the IPv4 or IPv6 or hostname of the remote system
+ <remote_port> : the remote TCP port
+ <local_ip> : optional local IP address to bind to
+ <local_port> : optional local TCP port, random if not specified
+
+Examples:
+ add connection tcp conn1 1.1.1.1 1200
+ opens a connection to IP address 1.1.1.1 port 1200 using the best local
+ interface and random local port.
+ add connection tcp barney2 fe80::aa20:66ff:fe00:314a 1300
+ opens connection to IPv6 address on port 1300.
+
+ add connection tcp conn0 1.1.1.1 1200 2.2.2.2 1300
+ opens a connection to 1.1.1.1 on port 1200 from the local address 2.2.2.2 port 1300
+
+ add connection tcp conn3 ccn.parc.com 9695
+ opens a connection to the host 'ccn.parc.com' on port 9695.
+ Maybe an IPv4 or IPv6 connection as the name is resolved and connectivity permits.
+
+A TCP connection will not be usable until the remote peer accepts the connection.
+
+> help add connection ether
+add connection ether <symbolic> <destination_mac> <local_interface>
+ <symbolic> : symbolic name, e.g. 'conn1' (must be unique, start with alpha)
+ <destination_mac> : destination MAC address in hex (optional ":" or "-" separators)
+ <local_interface> : the name of the local interface (e.g. "en0")
+
+Examples:
+ add connection ether conn7 e8-06-88-cd-28-de em3
+ Creates a connection to e8-06-88-cd-28-de on interface em3, ethertype = 0x0801
+
+ add connection ether hal2 00:1c:42:00:00:08 eth0
+ Creates a connection to 00:1c:42:00:00:08 on interface eth0, ethertype = 0x0801
+
+ add connection ether bcast0 FFFFFFFFFFFF eth0
+ Creates a broadcast connection on eth0 with ethertype = 0x0801
+
+===== Routes
+
+> help add route
+commands:
+ add route <symbolic | connid> <prefix> <cost>
+
+ symbolic: The symbolic name for an exgress
+ connid: The egress connection id (see 'help list connections')
+ prefix: The CCNx name as a URI (e.g. lci:/foo/bar)
+ cost: positive integer representing cost
+ nexthop: Optional network endpoint on the connection
+ seconds: Create a route that will expire if not refresed within the lifetime
+
+Examples:
+ add route 7 lci:/foo/bar 1
+ adds route to prefix '/foo/bar' on egress connection 7 with cost 1
+ add route tun3 lci:/foo/bar 1
+ adds route to prefix '/foo/bar' on egress connection 'tun3' with cost 1
+
+------------
+Related
+------------
+
+build/bin/parc_publickey is used to generate a keystore. See HOWTO-Keystore.
+
+------------
+Caveats
+------------
+1) There is no fragmentation for Ethernet, so all messages must fit in an MTU
+
diff --git a/metis/documentation/manpage/Makefile.am b/metis/documentation/manpage/Makefile.am
new file mode 100644
index 00000000..5415a8f4
--- /dev/null
+++ b/metis/documentation/manpage/Makefile.am
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2017 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+EXTRA_DIST = \
+ HOWTO-ForwarderConfig \
+ Makefile.am \
+ metis.cfg.5 \
+ metis.cfg.5.html \
+ metis.cfg.5.txt \
+ metis_control.1 \
+ metis_control.1.html \
+ metis_control.1.txt \
+ metis_daemon.1 \
+ metis_daemon.1.html \
+ metis_daemon.1.txt
diff --git a/metis/documentation/manpage/metis.cfg.5 b/metis/documentation/manpage/metis.cfg.5
new file mode 100644
index 00000000..0ae60007
--- /dev/null
+++ b/metis/documentation/manpage/metis.cfg.5
@@ -0,0 +1,202 @@
+.TH " \fBmetis.cfg\fP " "5"
+.SH "NAME"
+\fBmetis.cfg\fP \(em \fBmetis.cfg\fP is an example of a configuation file usable with
+\fBmetis_daemon\fP\fB(1)\fP,
+though there is nothing special about the actual filename. Each line of the configuration file is also usable with
+\fBmetis_control\fP\fB(1)\fP. This
+document specifies all available command lines used to configure and query Metis.
+
+All commands have a 'help', so typing 'help command' will display on-line help.
+
+In a configuration file, lines beginning with '#' are comments.
+
+.SH "ADD COMMANDS"
+.IP "add connection ether \fIsymbolic\fR \fIdmac\fR \fIinterface\fR" 10
+Adds an Ethernet connection on \fIinterface\fR to the given destination MAC address.
+The \fIsymbolic\fR name is a symbolic name for the connection, which may be used in
+later commands, such as \fBadd route\fR.
+There must be an Ethernet Listener on the specified interface (see \fBadd listener\fR), and the connection
+will use the same EtherType as the Listener. The \fIdmac\fR destination MAC address
+is in hexidecimal with optional "\-" or ":" separators.
+
+.IP "" 10
+A connection is a target for a later route assignment or for use as an ingress identifier in the PIT. When using a broadcast
+or group address for a connection, an Interest routed over that connection will be broadcast. Many receivers may respond.
+When Metis receives a broadcast Interest it uses the unicast source MAC for the reverse route \-\- it will automatically create
+a new connection for the source node and put that in the PIT entry, so a Content Object answering the broadcast Interest will
+only be unicast to the previous hop.
+
+.IP "" 10
+add connection ether conn7 e8-06-88-cd-28-de em3
+
+.IP "" 10
+add connection ether bcast0 FFFFFFFFFFFF eth0
+
+.IP "add connection (tcp|udp) \fIsymbolic\fR \fIremote_ip\fR \fIremote_port\fR \fIlocal_ip\fR \fIlocal_port\fR" 10
+Opens a connection to the specific \fIremote_ip\fR (which may be a hostname, though you do not have control over IPv4 or IPv6 in this case) on \fIremote_port\fR. The local endpoint is given by \fIlocal_ip\fR \fIlocal_port\fR. While the \fIlocal_ip\fR \fIlocal_port\fR are technically optional parameters, the system's choice of local address may not be what one expects or may be a different protocols (4 or 6). The default port is 9695.
+
+.IP "" 10
+A TCP connection will go through a TCP connection establishment and will not register as UP until the remote side accepts. If one side goes down, the TCP connection will not auto-restart if it becomes availble again.
+
+.IP "" 10
+A UDP connection will start in the UP state and will not go DOWN unless there is a serious network error.
+
+.RS
+.IP "Opens a connection to 1.1.1.1 on port 1200 from the local address 2.2.2.2 port 1300" 10
+add connection tcp conn0 1.1.1.1 1200 2.2.2.2 1300
+
+.IP "opens connection to IPv6 address on port 1300" 10
+add connection udp barney2 fe80::aa20:66ff:fe00:314a 1300
+
+.RE
+.IP "add listener (tcp|udp) \fIsymbolic\fR \fIip_address\fR \fIport\fR" 10
+.IP "add listener ether \fIsymbolic\fR \fIinterfaceName\fR \fIethertype\fR" 10
+.IP "add listener local \fIsymbolic\fR \fIpath\fR" 10
+Adds a protocol listener to accept packets of a given protocol (TCP or UDP or Ethernet).
+The \fIsymbolic\fR name represents the listener and will be used in future commands
+such as access list restrictions. If using a configuration file on \fBmetis_daemon\fR, you must include
+a listener on localhost for local applications to use.
+
+.IP "" 10
+The \fIip_address\fR is the IPv4 or IPv6 local address to bind to.
+The \fIport\fR is the TCP or UDP port to bind to.
+
+.IP "" 10
+The \fIinterfaceName\fR is the interface to open a raw socket on (e.g. "eth0").
+The \fIethertype\fR is the EtherType to use, represented as a 0x hex number (e.g. 0x0801)
+or an integer (e.g. 2049).
+
+.IP "" 10
+The \fIpath\fR parameter specifies the file path to a unix domain socket. Metis
+will create this file and remove it when it exits.
+
+.RS
+.IP "Listens to 192.168.1.7 on tcp port 9695 with a symbolic name 'homenet'" 10
+add listener tcp homenet 192.168.1.7 9695
+
+.IP "Listens to IPv6 localhost on udp port 9695" 10
+add listener udp localhost6 ::1 9695
+
+.IP "Listens to interface 'en0' on ethertype 0x0801" 10
+add listener ether nic0 en0 0x0801
+
+.RE
+.IP "add route \fIsymbolic\fR \fIprefix\fR \fIprefix\fR" 10
+Adds a static route to a given \fIprefix\fR to the FIB for longest match.
+
+.IP "" 10
+Currently, the \fIsymbolic\fR and \fIcost\fR are not used.
+
+.SH "LIST COMMANDS"
+.IP "list connections" 10
+Enumerates the current connections to Metis. These include all TCP, UDP, Unix Domain, and Ethernet peers.
+Each connection has an connection ID (connid) and a state (UP or DOWN) followed by the local (to metis) and remote
+addresses.
+
+.IP "list interfaces" 10
+Enumerates the system interfaces available to Metis. Each interface has an Interface ID, a 'name' (e.g. 'eth0'),
+an MTU as reported by the system, and one or more addresses.
+
+.IP "list routes" 10
+Enumerates the routes installed in the FIB.
+The \fIiface\fR is the out-bound connection.
+The \fIprotocol\fR is the the routing protocol that injected the route.
+'STATIC' means it was manually entered via \fBmetis_control\fR.
+\fIroute\fR is the route type. 'LONGEST' means longest matching prefix
+and 'EXACT' means exact match. Only 'LONGEST' is supported.
+\fIcost\fR is the cost of the route. It is not used.
+\fInext\fR is the nexthop on a multiple access interface. it is not used
+because the current implementation uses one connection (iface) per neighbor.
+\fIprefix\fR is the CCNx name prefix for the route.
+
+.IP "Examples" 10
+.PP
+.nf
+> list connections
+23 UP inet4://127.0.0.1:9695 inet4://127.0.0.1:64260 TCP
+
+> list interfaces
+int name lm MTU
+24 lo0 lm 16384 inet6://[::1%0]:0
+inet4://127.0.0.1:0
+inet6://[fe80::1%1]:0
+25 en0 m 1500 link://3c-15-c2-e7-c5-ca
+inet6://[fe80::3e15:c2ff:fee7:c5ca%4]:0
+inet4://13.1.110.60:0
+inet6://[2620::2e80:a015:3e15:c2ff:fee7:c5ca%0]:0
+inet6://[2620::2e80:a015:a4b2:7e10:61d1:8d97%0]:0
+26 en1 m 1500 link://72-00-04-43-4e-50
+inet4://192.168.1.1:0
+27 en2 m 1500 link://72-00-04-43-4e-51
+28 bridge0 m 1500 link://3e-15-c2-7e-96-00
+29 p2p0 m 2304 link://0e-15-c2-e7-c5-ca
+
+> list routes
+iface protocol route cost next prefix
+23 STATIC LONGEST 1 \-\--.\-\--.\-\--.\-\--/.... lci:/foo/bar
+Done
+
+.fi
+.PP
+.SH "REMOVE COMMANDS"
+.IP "remove connection" 10
+Not implemented.
+
+.IP "remove route" 10
+Not implemented.
+
+.SH "MISC COMMANDS"
+.IP "quit" 10
+In interactive mode of \fBmetis_control\fR, it cause the program to exit.
+
+.IP "set debug" 10
+Turns on the debugging flag in \fBmetis_control\fR to display information about its connection to Metis.
+
+.IP "unset debug" 10
+Turns off the debugging flag in \fBmetis_control\fR to display information about its connection to Metis.
+
+.SH "USAGE"
+.PP
+\fBExample Linux metis.cfg configuration file\fR
+.PP
+.nf
+#local listeners for applications
+add listener tcp local0 127.0.0.1 9695
+add listener udp local1 127.0.0.1 9695
+add listener local unix0 /tmp/metis.sock
+
+# add ethernet listener and connection
+add listener ether nic0 eth0 0x0801
+add connection ether conn0 ff:ff:ff:ff:ff:ff eth0
+add route conn0 lci:/ 1
+
+# add UDP tunnel to remote system
+add connection udp conn1 ccnx.example.com 9695
+add route conn1 lci:/eample.com 1
+
+.fi
+.PP
+.PP
+\fBExample one-shot metis_control commands\fR
+.PP
+.nf
+\fBmetis_control\fR list routes
+\fBmetis_control\fR add listener local unix0 /tmp/metis.sock
+
+.fi
+.SH "SEE ALSO"
+.PP
+\fBmetis_control\fP\fB(1)\fP
+\fBmetis_daemon\fP\fB(1)\fP
+.SH "CAVEATS"
+.PP
+
+.SH "BUGS"
+.IP " \(bu" 6
+The output of 'list interfaces' is difficult to read because multiple addresses
+do not align.
+
+.SH "AUTHOR"
+.PP
+Marc Mosko Palo Alto Research Center
+.\" created by instant / docbook-to-man, Tue 26 May 2015, 01:54
diff --git a/metis/documentation/manpage/metis.cfg.5.html b/metis/documentation/manpage/metis.cfg.5.html
new file mode 100644
index 00000000..dcc98a62
--- /dev/null
+++ b/metis/documentation/manpage/metis.cfg.5.html
@@ -0,0 +1,468 @@
+<!-- Creator : groff version 1.22.2 -->
+<!-- CreationDate: Tue May 26 01:54:12 2015 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ table { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ h1 { text-align: center }
+</style>
+<title>metis.cfg</title>
+
+</head>
+<body>
+
+<h1 align="center">metis.cfg</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#ADD COMMANDS">ADD COMMANDS</a><br>
+<a href="#LIST COMMANDS">LIST COMMANDS</a><br>
+<a href="#REMOVE COMMANDS">REMOVE COMMANDS</a><br>
+<a href="#MISC COMMANDS">MISC COMMANDS</a><br>
+<a href="#USAGE">USAGE</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+<a href="#CAVEATS">CAVEATS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p><b>metis.cfg</b></p></td>
+<td width="15%"></td>
+<td width="8%"></td>
+<td width="69%">
+
+
+<p>&mdash; <b>metis.cfg</b> is an example of a configuation
+file usable with <b>metis_daemon(1)</b>, though there is
+nothing special about the actual filename. Each line of the
+configuration file is also usable with
+<b>metis_control(1)</b>. This document specifies all
+available command lines used to configure and query
+Metis.</p> </td></tr>
+</table>
+
+<p style="margin-left:11%; margin-top: 1em">All commands
+have a &rsquo;help&rsquo;, so typing &rsquo;help
+command&rsquo; will display on-line help.</p>
+
+<p style="margin-left:11%; margin-top: 1em">In a
+configuration file, lines beginning with &rsquo;#&rsquo; are
+comments.</p>
+
+<h2>ADD COMMANDS
+<a name="ADD COMMANDS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">add connection
+ether <i>symbolic dmac interface</i></p>
+
+<p style="margin-left:26%;">Adds an Ethernet connection on
+<i>interface</i> to the given destination MAC address. The
+<i>symbolic</i> name is a symbolic name for the connection,
+which may be used in later commands, such as <b>add
+route</b>. There must be an Ethernet Listener on the
+specified interface (see <b>add listener</b>), and the
+connection will use the same EtherType as the Listener. The
+<i>dmac</i> destination MAC address is in hexidecimal with
+optional &quot;&minus;&quot; or &quot;:&quot;
+separators.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>A connection is a target for a later route assignment or
+for use as an ingress identifier in the PIT. When using a
+broadcast or group address for a connection, an Interest
+routed over that connection will be broadcast. Many
+receivers may respond. When Metis receives a broadcast
+Interest it uses the unicast source MAC for the reverse
+route &minus;&minus; it will automatically create a new
+connection for the source node and put that in the PIT
+entry, so a Content Object answering the broadcast Interest
+will only be unicast to the previous hop.</p></td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>add connection ether conn7 e8-06-88-cd-28-de em3</p></td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>add connection ether bcast0 FFFFFFFFFFFF eth0</p></td></tr>
+</table>
+
+<p style="margin-left:11%;">add connection (tcp|udp)
+<i>symbolic remote_ip remote_port local_ip <br>
+local_port</i></p>
+
+<p style="margin-left:26%;">Opens a connection to the
+specific <i>remote_ip</i> (which may be a hostname, though
+you do not have control over IPv4 or IPv6 in this case) on
+<i>remote_port</i>. The local endpoint is given by
+<i>local_ip local_port</i>. While the <i>local_ip
+local_port</i> are technically optional parameters, the
+system&rsquo;s choice of local address may not be what one
+expects or may be a different protocols (4 or 6). The
+default port is 9695.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>A TCP connection will go through a TCP connection
+establishment and will not register as UP until the remote
+side accepts. If one side goes down, the TCP connection will
+not auto-restart if it becomes availble again.</p></td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>A UDP connection will start in the UP state and will not
+go DOWN unless there is a serious network error.</p></td></tr>
+</table>
+
+<p style="margin-left:26%;">Opens a connection to 1.1.1.1
+on port 1200 from the local <br>
+address 2.2.2.2 port 1300</p>
+
+<p style="margin-left:42%;">add connection tcp conn0
+1.1.1.1 1200 2.2.2.2 1300</p>
+
+<p style="margin-left:26%;">opens connection to IPv6
+address on port 1300</p>
+
+<p style="margin-left:42%;">add connection udp barney2
+fe80::aa20:66ff:fe00:314a 1300</p>
+
+<p style="margin-left:11%;">add listener (tcp|udp)
+<i>symbolic ip_address port</i> <br>
+add listener ether <i>symbolic interfaceName ethertype</i>
+<br>
+add listener local <i>symbolic path</i></p>
+
+<p style="margin-left:26%;">Adds a protocol listener to
+accept packets of a given protocol (TCP or UDP or Ethernet).
+The <i>symbolic</i> name represents the listener and will be
+used in future commands such as access list restrictions. If
+using a configuration file on <b>metis_daemon</b>, you must
+include a listener on localhost for local applications to
+use.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>The <i>ip_address</i> is the IPv4 or IPv6 local address
+to bind to. The <i>port</i> is the TCP or UDP port to bind
+to.</p> </td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>The <i>interfaceName</i> is the interface to open a raw
+socket on (e.g. &quot;eth0&quot;). The <i>ethertype</i> is
+the EtherType to use, represented as a 0x hex number (e.g.
+0x0801) or an integer (e.g. 2049).</p></td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>The <i>path</i> parameter specifies the file path to a
+unix domain socket. Metis will create this file and remove
+it when it exits.</p></td></tr>
+</table>
+
+<p style="margin-left:26%;">Listens to 192.168.1.7 on tcp
+port 9695 with a symbolic name <br>
+&rsquo;homenet&rsquo;</p>
+
+<p style="margin-left:42%;">add listener tcp homenet
+192.168.1.7 9695</p>
+
+<p style="margin-left:26%;">Listens to IPv6 localhost on
+udp port 9695</p>
+
+<p style="margin-left:42%;">add listener udp localhost6 ::1
+9695</p>
+
+<p style="margin-left:26%;">Listens to interface
+&rsquo;en0&rsquo; on ethertype 0x0801</p>
+
+<p style="margin-left:42%;">add listener ether nic0 en0
+0x0801</p>
+
+<p style="margin-left:11%;">add route <i>symbolic prefix
+prefix</i></p>
+
+<p style="margin-left:26%;">Adds a static route to a given
+<i>prefix</i> to the FIB for longest match.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="71%">
+
+
+<p>Currently, the <i>symbolic</i> and <i>cost</i> are not
+used.</p> </td>
+<td width="3%">
+</td></tr>
+</table>
+
+<h2>LIST COMMANDS
+<a name="LIST COMMANDS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">list
+connections</p>
+
+<p style="margin-left:26%;">Enumerates the current
+connections to Metis. These include all TCP, UDP, Unix
+Domain, and Ethernet peers. Each connection has an
+connection ID (connid) and a state (UP or DOWN) followed by
+the local (to metis) and remote addresses.</p>
+
+<p style="margin-left:11%;">list interfaces</p>
+
+<p style="margin-left:26%;">Enumerates the system
+interfaces available to Metis. Each interface has an
+Interface ID, a &rsquo;name&rsquo; (e.g.
+&rsquo;eth0&rsquo;), an MTU as reported by the system, and
+one or more addresses.</p>
+
+<p style="margin-left:11%;">list routes</p>
+
+<p style="margin-left:26%;">Enumerates the routes installed
+in the FIB. The <i>iface</i> is the out-bound connection.
+The <i>protocol</i> is the the routing protocol that
+injected the route. <i>route</i> is the route type.
+&rsquo;LONGEST&rsquo; means longest matching prefix and
+&rsquo;EXACT&rsquo; means exact match. Only
+&rsquo;LONGEST&rsquo; is supported. <i>cost</i> is the cost
+of the route. It is not used. <i>next</i> is the nexthop on
+a multiple access interface. it is not used because the
+current implementation uses one connection (iface) per
+neighbor. <i>prefix</i> is the CCNx name prefix for the
+route.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="12%">
+
+
+<p>Examples</p></td>
+<td width="77%">
+</td></tr>
+</table>
+
+<p style="margin-left:11%;">&gt; list connections <br>
+23 UP inet4://127.0.0.1:9695 inet4://127.0.0.1:64260 TCP</p>
+
+<p style="margin-left:11%; margin-top: 1em">&gt; list
+interfaces <br>
+int name lm MTU <br>
+24 lo0 lm 16384 inet6://[::1%0]:0 <br>
+inet4://127.0.0.1:0 <br>
+inet6://[fe80::1%1]:0 <br>
+25 en0 m 1500 link://3c-15-c2-e7-c5-ca <br>
+inet6://[fe80::3e15:c2ff:fee7:c5ca%4]:0 <br>
+inet4://13.1.110.60:0 <br>
+inet6://[2620::2e80:a015:3e15:c2ff:fee7:c5ca%0]:0 <br>
+inet6://[2620::2e80:a015:a4b2:7e10:61d1:8d97%0]:0 <br>
+26 en1 m 1500 link://72-00-04-43-4e-50 <br>
+inet4://192.168.1.1:0 <br>
+27 en2 m 1500 link://72-00-04-43-4e-51 <br>
+28 bridge0 m 1500 link://3e-15-c2-7e-96-00 <br>
+29 p2p0 m 2304 link://0e-15-c2-e7-c5-ca</p>
+
+<p style="margin-left:11%; margin-top: 1em">&gt; list
+routes <br>
+iface protocol route cost next prefix <br>
+23 STATIC LONGEST 1
+&minus;&minus;-.&minus;&minus;-.&minus;&minus;-.&minus;&minus;-/....
+lci:/foo/bar <br>
+Done</p>
+
+<h2>REMOVE COMMANDS
+<a name="REMOVE COMMANDS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">remove
+connection</p>
+
+<p style="margin-left:26%;">Not implemented.</p>
+
+<p style="margin-left:11%;">remove route</p>
+
+<p style="margin-left:26%;">Not implemented.</p>
+
+<h2>MISC COMMANDS
+<a name="MISC COMMANDS"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="14%">
+
+
+<p style="margin-top: 1em">quit</p></td>
+<td width="1%"></td>
+<td width="74%">
+
+
+<p style="margin-top: 1em">In interactive mode of
+<b>metis_control</b>, it cause the program to exit.</p></td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="14%">
+
+
+<p>set debug</p></td>
+<td width="1%"></td>
+<td width="74%">
+
+
+<p>Turns on the debugging flag in <b>metis_control</b> to
+display information about its connection to Metis.</p></td></tr>
+</table>
+
+<p style="margin-left:11%;">unset debug</p>
+
+<p style="margin-left:26%;">Turns off the debugging flag in
+<b>metis_control</b> to display information about its
+connection to Metis.</p>
+
+<h2>USAGE
+<a name="USAGE"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>Example
+Linux metis.cfg configuration file</b></p>
+
+<p style="margin-left:11%; margin-top: 1em">#local
+listeners for applications <br>
+add listener tcp local0 127.0.0.1 9695 <br>
+add listener udp local1 127.0.0.1 9695 <br>
+add listener local unix0 /tmp/metis.sock</p>
+
+<p style="margin-left:11%; margin-top: 1em"># add ethernet
+listener and connection <br>
+add listener ether nic0 eth0 0x0801 <br>
+add connection ether conn0 ff:ff:ff:ff:ff:ff eth0 <br>
+add route conn0 lci:/ 1</p>
+
+<p style="margin-left:11%; margin-top: 1em"># add UDP
+tunnel to remote system <br>
+add connection udp conn1 ccnx.example.com 9695 <br>
+add route conn1 lci:/eample.com 1</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>Example
+one-shot metis_control commands</b></p>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_control</b>
+list routes <b><br>
+metis_control</b> add listener local unix0
+/tmp/metis.sock</p>
+
+<h2>SEE ALSO
+<a name="SEE ALSO"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p><b>metis_control(1) metis_daemon(1)</b></p></td>
+<td width="23%"></td>
+<td width="7%"></td>
+<td width="62%">
+</td></tr>
+</table>
+
+<h2>CAVEATS
+<a name="CAVEATS"></a>
+</h2>
+
+
+<h2>BUGS
+<a name="BUGS"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p style="margin-top: 1em">&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p style="margin-top: 1em">The output of &rsquo;list
+interfaces&rsquo; is difficult to read because multiple
+addresses do not align.</p></td></tr>
+</table>
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<p>Marc Mosko Palo Alto Research Center</p></table>
+<hr>
+</body>
+</html>
diff --git a/metis/documentation/manpage/metis.cfg.5.pdf b/metis/documentation/manpage/metis.cfg.5.pdf
new file mode 100644
index 00000000..07ec3a95
--- /dev/null
+++ b/metis/documentation/manpage/metis.cfg.5.pdf
Binary files differ
diff --git a/metis/documentation/manpage/metis.cfg.5.txt b/metis/documentation/manpage/metis.cfg.5.txt
new file mode 100644
index 00000000..3465bc34
--- /dev/null
+++ b/metis/documentation/manpage/metis.cfg.5.txt
@@ -0,0 +1,241 @@
+ mmeettiiss..ccffgg (5) File Formats Manual mmeettiiss..ccffgg (5)
+
+
+
+NNAAMMEE
+ mmeettiiss..ccffgg -- mmeettiiss..ccffgg is an example of a configuation file
+ usable with mmeettiiss__ddaaeemmoonn((11)), though there is nothing special about the
+ actual filename. Each line of the configuration file is also usable
+ with mmeettiiss__ccoonnttrrooll((11)). This document specifies all available command
+ lines used to configure and query Metis.
+
+ All commands have a 'help', so typing 'help command' will display on-
+ line help.
+
+ In a configuration file, lines beginning with '#' are comments.
+
+
+AADDDD CCOOMMMMAANNDDSS
+ add connection ether _s_y_m_b_o_l_i_c _d_m_a_c _i_n_t_e_r_f_a_c_e
+ Adds an Ethernet connection on _i_n_t_e_r_f_a_c_e to the given desti-
+ nation MAC address. The _s_y_m_b_o_l_i_c name is a symbolic name for
+ the connection, which may be used in later commands, such as
+ aadddd rroouuttee. There must be an Ethernet Listener on the speci-
+ fied interface (see aadddd lliisstteenneerr), and the connection will
+ use the same EtherType as the Listener. The _d_m_a_c destination
+ MAC address is in hexidecimal with optional "-" or ":" sepa-
+ rators.
+
+
+ A connection is a target for a later route assignment or for
+ use as an ingress identifier in the PIT. When using a broad-
+ cast or group address for a connection, an Interest routed
+ over that connection will be broadcast. Many receivers may
+ respond. When Metis receives a broadcast Interest it uses
+ the unicast source MAC for the reverse route -- it will auto-
+ matically create a new connection for the source node and put
+ that in the PIT entry, so a Content Object answering the
+ broadcast Interest will only be unicast to the previous hop.
+
+
+ add connection ether conn7 e8-06-88-cd-28-de em3
+
+
+ add connection ether bcast0 FFFFFFFFFFFF eth0
+
+
+ add connection (tcp|udp) _s_y_m_b_o_l_i_c _r_e_m_o_t_e___i_p _r_e_m_o_t_e___p_o_r_t _l_o_c_a_l___i_p
+ _l_o_c_a_l___p_o_r_t
+ Opens a connection to the specific _r_e_m_o_t_e___i_p (which may be a
+ hostname, though you do not have control over IPv4 or IPv6 in
+ this case) on _r_e_m_o_t_e___p_o_r_t. The local endpoint is given by
+ _l_o_c_a_l___i_p _l_o_c_a_l___p_o_r_t. While the _l_o_c_a_l___i_p _l_o_c_a_l___p_o_r_t are tech-
+ nically optional parameters, the system's choice of local
+ address may not be what one expects or may be a different
+ protocols (4 or 6). The default port is 9695.
+
+
+ A TCP connection will go through a TCP connection establish-
+ ment and will not register as UP until the remote side
+ accepts. If one side goes down, the TCP connection will not
+ auto-restart if it becomes availble again.
+
+
+ A UDP connection will start in the UP state and will not go
+ DOWN unless there is a serious network error.
+
+
+ Opens a connection to 1.1.1.1 on port 1200 from the local
+ address 2.2.2.2 port 1300
+ add connection tcp conn0 1.1.1.1 1200 2.2.2.2 1300
+
+
+ opens connection to IPv6 address on port 1300
+ add connection udp barney2
+ fe80::aa20:66ff:fe00:314a 1300
+
+
+ add listener (tcp|udp) _s_y_m_b_o_l_i_c _i_p___a_d_d_r_e_s_s _p_o_r_t
+
+ add listener ether _s_y_m_b_o_l_i_c _i_n_t_e_r_f_a_c_e_N_a_m_e _e_t_h_e_r_t_y_p_e
+
+ add listener local _s_y_m_b_o_l_i_c _p_a_t_h
+ Adds a protocol listener to accept packets of a given proto-
+ col (TCP or UDP or Ethernet). The _s_y_m_b_o_l_i_c name represents
+ the listener and will be used in future commands such as
+ access list restrictions. If using a configuration file on
+ mmeettiiss__ddaaeemmoonn, you must include a listener on localhost for
+ local applications to use.
+
+
+ The _i_p___a_d_d_r_e_s_s is the IPv4 or IPv6 local address to bind to.
+ The _p_o_r_t is the TCP or UDP port to bind to.
+
+
+ The _i_n_t_e_r_f_a_c_e_N_a_m_e is the interface to open a raw socket on
+ (e.g. "eth0"). The _e_t_h_e_r_t_y_p_e is the EtherType to use, repre-
+ sented as a 0x hex number (e.g. 0x0801) or an integer (e.g.
+ 2049).
+
+
+ The _p_a_t_h parameter specifies the file path to a unix domain
+ socket. Metis will create this file and remove it when it
+ exits.
+
+
+ Listens to 192.168.1.7 on tcp port 9695 with a symbolic name
+ 'homenet'
+ add listener tcp homenet 192.168.1.7 9695
+
+
+ Listens to IPv6 localhost on udp port 9695
+ add listener udp localhost6 ::1 9695
+
+
+ Listens to interface 'en0' on ethertype 0x0801
+ add listener ether nic0 en0 0x0801
+
+
+ add route _s_y_m_b_o_l_i_c _p_r_e_f_i_x _p_r_e_f_i_x
+ Adds a static route to a given _p_r_e_f_i_x to the FIB for longest
+ match.
+
+
+ Currently, the _s_y_m_b_o_l_i_c and _c_o_s_t are not used.
+
+
+LLIISSTT CCOOMMMMAANNDDSS
+ list connections
+ Enumerates the current connections to Metis. These include
+ all TCP, UDP, Unix Domain, and Ethernet peers. Each connec-
+ tion has an connection ID (connid) and a state (UP or DOWN)
+ followed by the local (to metis) and remote addresses.
+
+
+ list interfaces
+ Enumerates the system interfaces available to Metis. Each
+ interface has an Interface ID, a 'name' (e.g. 'eth0'), an MTU
+ as reported by the system, and one or more addresses.
+
+
+ list routes
+ Enumerates the routes installed in the FIB. The _i_f_a_c_e is the
+ out-bound connection. The _p_r_o_t_o_c_o_l is the the routing proto-
+ col that injected the route. _r_o_u_t_e is the route type.
+ 'LONGEST' means longest matching prefix and 'EXACT' means
+ exact match. Only 'LONGEST' is supported. _c_o_s_t is the cost
+ of the route. It is not used. _n_e_x_t is the nexthop on a mul-
+ tiple access interface. it is not used because the current
+ implementation uses one connection (iface) per neighbor.
+ _p_r_e_f_i_x is the CCNx name prefix for the route.
+
+
+ Examples
+
+ > list connections
+ 23 UP inet4://127.0.0.1:9695 inet4://127.0.0.1:64260 TCP
+
+ > list interfaces
+ int name lm MTU
+ 24 lo0 lm 16384 inet6://[::1%0]:0
+ inet4://127.0.0.1:0
+ inet6://[fe80::1%1]:0
+ 25 en0 m 1500 link://3c-15-c2-e7-c5-ca
+ inet6://[fe80::3e15:c2ff:fee7:c5ca%4]:0
+ inet4://13.1.110.60:0
+ inet6://[2620::2e80:a015:3e15:c2ff:fee7:c5ca%0]:0
+ inet6://[2620::2e80:a015:a4b2:7e10:61d1:8d97%0]:0
+ 26 en1 m 1500 link://72-00-04-43-4e-50
+ inet4://192.168.1.1:0
+ 27 en2 m 1500 link://72-00-04-43-4e-51
+ 28 bridge0 m 1500 link://3e-15-c2-7e-96-00
+ 29 p2p0 m 2304 link://0e-15-c2-e7-c5-ca
+
+ > list routes
+ iface protocol route cost next prefix
+ 23 STATIC LONGEST 1 ---.---.---.---/.... lci:/foo/bar
+ Done
+
+
+RREEMMOOVVEE CCOOMMMMAANNDDSS
+ remove connection
+ Not implemented.
+
+
+ remove route
+ Not implemented.
+
+
+MMIISSCC CCOOMMMMAANNDDSS
+ quit In interactive mode of mmeettiiss__ccoonnttrrooll, it cause the program to
+ exit.
+
+
+ set debug Turns on the debugging flag in mmeettiiss__ccoonnttrrooll to display
+ information about its connection to Metis.
+
+
+ unset debug
+ Turns off the debugging flag in mmeettiiss__ccoonnttrrooll to display
+ information about its connection to Metis.
+
+
+UUSSAAGGEE
+ EExxaammppllee LLiinnuuxx mmeettiiss..ccffgg ccoonnffiigguurraattiioonn ffiillee
+
+ #local listeners for applications
+ add listener tcp local0 127.0.0.1 9695
+ add listener udp local1 127.0.0.1 9695
+ add listener local unix0 /tmp/metis.sock
+
+ # add ethernet listener and connection
+ add listener ether nic0 eth0 0x0801
+ add connection ether conn0 ff:ff:ff:ff:ff:ff eth0
+ add route conn0 lci:/ 1
+
+ # add UDP tunnel to remote system
+ add connection udp conn1 ccnx.example.com 9695
+ add route conn1 lci:/eample.com 1
+
+
+ EExxaammppllee oonnee--sshhoott mmeettiiss__ccoonnttrrooll ccoommmmaannddss
+
+ mmeettiiss__ccoonnttrrooll list routes
+ mmeettiiss__ccoonnttrrooll add listener local unix0 /tmp/metis.sock
+
+
+SSEEEE AALLSSOO
+ mmeettiiss__ccoonnttrrooll((11)) mmeettiiss__ddaaeemmoonn((11))
+
+CCAAVVEEAATTSS
+BBUUGGSS
+ +o The output of 'list interfaces' is difficult to read because mul-
+ tiple addresses do not align.
+
+
+AAUUTTHHOORR
+ Marc Mosko Palo Alto Research Center
+
+
+
+ mmeettiiss..ccffgg (5)
diff --git a/metis/documentation/manpage/metis_control.1 b/metis/documentation/manpage/metis_control.1
new file mode 100644
index 00000000..034920a2
--- /dev/null
+++ b/metis/documentation/manpage/metis_control.1
@@ -0,0 +1,79 @@
+.TH " \fBmetis_control\fP " "1"
+.SH "NAME"
+\fBmetis_control\fP \(em Metis is the CCNx 1.0 forwarder, which runs on each end system and as a software forwarder
+on intermediate systems. \fBmetis_control\fR is the program to configure the forwarder,
+\fBmetis_daemon\fR.
+
+.SH "SYNOPSIS"
+.PP
+\fBmetis_control\fR [\fB\-\-keystore\fP \fIkeystore\fR] [\fB\-\-password\fP \fIpassword\fR] [commandline]
+.SH "DESCRIPTION"
+.PP
+\fBmetis_control\fR is the program used to configure a running forwarder \fBmetis_daemon\fR. It will connect to
+the forwarder over a local listener (e.g. TCP to localhost or a unix domain socket). If a
+\fIcommandline\fR option is specified, \fBmetis_control\fR will send that one command to Metis and then exit. If no \fIcommandline\fR is specified, \fBmetis_command\fR will enter interacitve mode where the user can issue
+multiple commands.
+
+.PP
+\fBmetis_control\fR requires a signing keystore for communicating over the network. The
+\fIkeystore\fR file is a standard PKCS12 keystore, and may be
+created using
+\fBparc_publickey\fP\fB(1)\fP.
+If no \fIkeystore\fR is specified, \fBmetis_control\fR will look in the standard path ~/.ccnx/.ccnx_keystore.p12.
+The keystore password is specified in \fIpassword\fR. If not specified,
+no password is used. If the keystore does not open, the user will be prompted for a password.
+
+.PP
+See \fBmetis.cfg\fP\fB(5)\fP for
+a specification of the available \fIcommandline\fR.
+
+.PP
+The environment variable METIS_PORT may be used to specify what TCP port to use to connect to the local Metis.
+The environment variable METIS_LOCALPATH may be used to specific the UNIX domain socket to connect to the local Metis
+and takes priority over METIS_PORT.
+
+.SH "OPTIONS"
+.IP "\-\-keystore \fIkeystore\fR" 10
+\fBmetis_control\fR requires a signing keystore for communicating over the network. The
+\fIkeystore\fR file is a standard PKCS12 keystore, and may be
+created using
+\fBparc_publickey\fP\fB(1)\fP.
+If no \fIkeystore\fR is specified, \fBmetis_control\fR will look in the standard path ~/.ccnx/.ccnx_keystore.p12.
+
+.IP "\-\-password \fIpassword\fR" 10
+The keystore password is specified in \fIpassword\fR. If not specified,
+no password is used. If the keystore does not open, the user will be prompted for a password.
+
+.IP "commandline" 10
+The remainder of the arguments are the commandline to send to Metis. See USAGE.
+
+.SH "USAGE"
+.PP
+\fBmetis_control\fR \-\-keystore keystore.p12
+
+.PP
+\fBmetis_control\fR \-\-keystore keystore.p12 list interfaces
+
+.SH "SEE ALSO"
+.PP
+See \fBparc_publickey\fP\fB(1)\fP for a utility
+to create a PKCS keystore.
+
+.PP
+For a list of all configuration lines that may be used with
+\fBmetis_control\fR and by \fI\-\-config\fR configuration file,
+see \fBmetis.cfg\fP\fB(5)\fP.
+
+.PP
+The default keystore is ~/.ccnx/.ccnx_keystore.p12.
+
+.SH "CAVEATS"
+.PP
+
+.SH "BUGS"
+.PP
+
+.SH "AUTHOR"
+.PP
+Marc Mosko Palo Alto Research Center
+.\" created by instant / docbook-to-man, Tue 26 May 2015, 01:54
diff --git a/metis/documentation/manpage/metis_control.1.html b/metis/documentation/manpage/metis_control.1.html
new file mode 100644
index 00000000..1eb911a5
--- /dev/null
+++ b/metis/documentation/manpage/metis_control.1.html
@@ -0,0 +1,280 @@
+<!-- Creator : groff version 1.22.2 -->
+<!-- CreationDate: Tue May 26 01:54:12 2015 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ table { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ h1 { text-align: center }
+</style>
+<title>metis_control</title>
+
+</head>
+<body>
+
+<h1 align="center">metis_control</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#OPTIONS">OPTIONS</a><br>
+<a href="#USAGE">USAGE</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+<a href="#CAVEATS">CAVEATS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p><b>metis_control</b></p></td>
+<td width="15%"></td>
+<td width="8%"></td>
+<td width="69%">
+
+
+<p>&mdash; Metis is the CCNx 1.0 forwarder, which runs on
+each end system and as a software forwarder on intermediate
+systems. <b>metis_control</b> is the program to configure
+the forwarder, <b>metis_daemon</b>.</p></td></tr>
+</table>
+
+<h2>SYNOPSIS
+<a name="SYNOPSIS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_control</b>
+[<b>&minus;&minus;keystore</b> <i>keystore</i>]
+[<b>&minus;&minus;password</b> <i>password</i>]
+[commandline]</p>
+
+<h2>DESCRIPTION
+<a name="DESCRIPTION"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p><b>metis_control</b></p></td>
+<td width="15%"></td>
+<td width="8%">
+
+
+<p>is the program used to configure a running forwarder
+<b>metis_daemon</b>. It will connect to the forwarder over a
+local listener (e.g. TCP to localhost or a unix domain
+socket). If a <i>commandline</i> option is specified,
+<b>metis_control</b></p> </td>
+<td width="54%"></td>
+<td width="7%"></td>
+<td width="8%">
+
+
+<p>will send that one command to Metis and then exit. If no
+<i>commandline</i></p> </td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%"></td>
+<td width="15%"></td>
+<td width="8%"></td>
+<td width="54%"></td>
+<td width="7%"></td>
+<td width="8%">
+
+
+<p>is specified, <b>metis_command</b> will enter
+interacitve mode where the user can issue multiple
+commands.</p> </td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p><b>metis_control</b> requires a signing keystore for
+communicating over the network. The <i>keystore</i> file is
+a standard PKCS12 keystore, and may be created using
+<b>parc_publickey(1)</b>. If no <i>keystore</i> is
+specified, <b>metis_control</b></p></td>
+<td width="15%"></td>
+<td width="8%"></td>
+<td width="54%"></td>
+<td width="7%"></td>
+<td width="8%">
+
+
+<p>will look in the standard path
+~/.ccnx/.ccnx_keystore.p12. The keystore password is
+specified in <i>password</i>. If not specified, no password
+is used. If the keystore does not open, the user will be
+prompted for a password.</p></td></tr>
+</table>
+
+<p style="margin-left:11%; margin-top: 1em">See
+<b>metis.cfg(5)</b> for a specification of the available
+<i>commandline</i>.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The environment
+variable METIS_PORT may be used to specify what TCP port to
+use to connect to the local Metis. The environment variable
+METIS_LOCALPATH may be used to specific the UNIX domain
+socket to connect to the local Metis and takes priority over
+METIS_PORT.</p>
+
+<h2>OPTIONS
+<a name="OPTIONS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em">&minus;&minus;keystore
+<i>keystore</i></p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="-18%">
+
+
+<p><b>metis_control</b> requires a signing keystore for
+communicating over the network. The <i>keystore</i> file is
+a standard PKCS12 keystore, and may be created using
+<b>parc_publickey(1)</b>. If no <i>keystore</i> is
+specified, <b>metis_control</b></p></td>
+<td width="61%"></td>
+<td width="8%"></td>
+<td width="8%"></td>
+<td width="7%"></td>
+<td width="8%">
+</td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="-18%"></td>
+<td width="61%"></td>
+<td width="8%"></td>
+<td width="8%"></td>
+<td width="7%"></td>
+<td width="8%">
+</td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="-18%"></td>
+<td width="61%"></td>
+<td width="8%"></td>
+<td width="8%"></td>
+<td width="7%"></td>
+<td width="8%">
+</td></tr>
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="-18%"></td>
+<td width="61%"></td>
+<td width="8%"></td>
+<td width="8%"></td>
+<td width="7%"></td>
+<td width="8%">
+
+
+<p>will look in the standard path
+~/.ccnx/.ccnx_keystore.p12.</p> </td></tr>
+</table>
+
+<p style="margin-left:11%;">&minus;&minus;password
+<i>password</i></p>
+
+<p style="margin-left:26%;">The keystore password is
+specified in <i>password</i>. If not specified, no password
+is used. If the keystore does not open, the user will be
+prompted for a password.</p>
+
+<p style="margin-left:11%;">commandline</p>
+
+<p style="margin-left:26%;">The remainder of the arguments
+are the commandline to send to Metis. See USAGE.</p>
+
+<h2>USAGE
+<a name="USAGE"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_control</b>
+&minus;&minus;keystore keystore.p12</p>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_control</b>
+&minus;&minus;keystore keystore.p12 list interfaces</p>
+
+<h2>SEE ALSO
+<a name="SEE ALSO"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">See
+<b>parc_publickey(1)</b> for a utility to create a PKCS
+keystore.</p>
+
+<p style="margin-left:11%; margin-top: 1em">For a list of
+all configuration lines that may be used with
+<b>metis_control</b> and by <i>&minus;&minus;config</i>
+configuration file, see <b>metis.cfg(5)</b>.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The default
+keystore is ~/.ccnx/.ccnx_keystore.p12.</p>
+
+<h2>CAVEATS
+<a name="CAVEATS"></a>
+</h2>
+
+
+<h2>BUGS
+<a name="BUGS"></a>
+</h2>
+
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p>Marc Mosko Palo Alto Research Center</p></td>
+<td width="54%"></td>
+<td width="7%"></td>
+<td width="31%">
+</td></tr>
+ </table>
+<hr>
+</body>
+</html>
diff --git a/metis/documentation/manpage/metis_control.1.pdf b/metis/documentation/manpage/metis_control.1.pdf
new file mode 100644
index 00000000..6088c69a
--- /dev/null
+++ b/metis/documentation/manpage/metis_control.1.pdf
Binary files differ
diff --git a/metis/documentation/manpage/metis_control.1.txt b/metis/documentation/manpage/metis_control.1.txt
new file mode 100644
index 00000000..ffeac009
--- /dev/null
+++ b/metis/documentation/manpage/metis_control.1.txt
@@ -0,0 +1,87 @@
+ mmeettiiss__ccoonnttrrooll (1)General Commands Manual mmeettiiss__ccoonnttrrooll (1)
+
+
+
+NNAAMMEE
+ mmeettiiss__ccoonnttrrooll -- Metis is the CCNx 1.0 forwarder, which runs on each
+ end system and as a software forwarder on intermediate systems.
+ mmeettiiss__ccoonnttrrooll is the program to configure the forwarder, mmeettiiss__ddaaeemmoonn.
+
+
+SSYYNNOOPPSSIISS
+ mmeettiiss__ccoonnttrrooll [----kkeeyyssttoorree _k_e_y_s_t_o_r_e] [----ppaasssswwoorrdd _p_a_s_s_w_o_r_d] [command-
+ line]
+
+DDEESSCCRRIIPPTTIIOONN
+ mmeettiiss__ccoonnttrrooll is the program used to configure a running forwarder
+ mmeettiiss__ddaaeemmoonn. It will connect to the forwarder over a local listener
+ (e.g. TCP to localhost or a unix domain socket). If a _c_o_m_m_a_n_d_l_i_n_e
+ option is specified, mmeettiiss__ccoonnttrrooll will send that one command to
+ Metis and then exit. If no _c_o_m_m_a_n_d_l_i_n_e is specified, mmeettiiss__ccoommmmaanndd
+ will enter interacitve mode where the user can issue multiple commands.
+
+
+ mmeettiiss__ccoonnttrrooll requires a signing keystore for communicating over the
+ network. The _k_e_y_s_t_o_r_e file is a standard PKCS12 keystore, and may be
+ created using ppaarrcc__ppuubblliicckkeeyy((11)). If no _k_e_y_s_t_o_r_e is specified,
+ mmeettiiss__ccoonnttrrooll will look in the standard path ~/.ccnx/.ccnx_key-
+ store.p12. The keystore password is specified in _p_a_s_s_w_o_r_d. If not
+ specified, no password is used. If the keystore does not open, the
+ user will be prompted for a password.
+
+
+ See mmeettiiss..ccffgg((55)) for a specification of the available _c_o_m_m_a_n_d_l_i_n_e.
+
+
+ The environment variable METIS_PORT may be used to specify what TCP
+ port to use to connect to the local Metis. The environment variable
+ METIS_LOCALPATH may be used to specific the UNIX domain socket to con-
+ nect to the local Metis and takes priority over METIS_PORT.
+
+
+OOPPTTIIOONNSS
+ --keystore _k_e_y_s_t_o_r_e
+ mmeettiiss__ccoonnttrrooll requires a signing keystore for communicating
+ over the network. The _k_e_y_s_t_o_r_e file is a standard PKCS12
+ keystore, and may be created using ppaarrcc__ppuubblliicckkeeyy((11)). If no
+ _k_e_y_s_t_o_r_e is specified, mmeettiiss__ccoonnttrrooll will
+ look in the standard path ~/.ccnx/.ccnx_keystore.p12.
+
+
+ --password _p_a_s_s_w_o_r_d
+ The keystore password is specified in _p_a_s_s_w_o_r_d. If not spec-
+ ified, no password is used. If the keystore does not open,
+ the user will be prompted for a password.
+
+
+ commandline
+ The remainder of the arguments are the commandline to send to
+ Metis. See USAGE.
+
+
+UUSSAAGGEE
+ mmeettiiss__ccoonnttrrooll --keystore keystore.p12
+
+
+ mmeettiiss__ccoonnttrrooll --keystore keystore.p12 list interfaces
+
+
+SSEEEE AALLSSOO
+ See ppaarrcc__ppuubblliicckkeeyy((11)) for a utility to create a PKCS keystore.
+
+
+ For a list of all configuration lines that may be used with mmeettiiss__ccoonn--
+ ttrrooll and by _-_-_c_o_n_f_i_g configuration file, see mmeettiiss..ccffgg((55)).
+
+
+ The default keystore is ~/.ccnx/.ccnx_keystore.p12.
+
+
+CCAAVVEEAATTSS
+BBUUGGSS
+AAUUTTHHOORR
+ Marc Mosko Palo Alto Research Center
+
+
+
+ mmeettiiss__ccoonnttrrooll (1)
diff --git a/metis/documentation/manpage/metis_daemon.1 b/metis/documentation/manpage/metis_daemon.1
new file mode 100644
index 00000000..b5172f61
--- /dev/null
+++ b/metis/documentation/manpage/metis_daemon.1
@@ -0,0 +1,138 @@
+.TH " \fBmetis_daemon\fP " "1"
+.SH "NAME"
+\fBmetis_daemon\fP \(em Metis is the CCNx 1.0 forwarder, which runs on each end system and as a software forwarder
+on intermediate systems.
+
+.SH "SYNOPSIS"
+.PP
+\fBmetis_daemon\fR [\fB\-\-port\fP \fIport\fR] [\fB\-\-daemon\fP] [\fB\-\-capacity\fP \fIcontentStoreSize\fR] [\fB\-\-log\fP \fIfacility=level\fR \&...] [\fB\-\-log-file\fP \fIlogfile\fR] [\fB\-\-config\fP \fIconfigfile\fR]
+.SH "DESCRIPTION"
+.PP
+\fBmetis_daemon\fR is the CCNx 1.0 forwarder, which runs on each end system and as a software forwarder
+on intermediate systems. metis_daemon is the program to launch Metis, either as a console program
+or a background daemon (detatched from console). Once running, use the program \fBmetis_control\fR to
+configure Metis.
+
+.PP
+Metis is structured as a set of Listeners, each of which handles a specific method of listening for packets.
+For example, a TCP listener will accept connections on a specific TCP port on a specific local IP address.
+An Ethernet listener will accept frames of a specific EtherType on a specific Interface.
+
+.PP
+When Metis accepts a connection, it will create a Connection entry in the ConnectionTable to represent that peer.
+For Ethernet, a Connection is the tuple {dmac, smac, ethertype}. For TCP and UDP, it is the tuple {source IP, source port,
+destination IP, destination port}. The connid (connection ID) becomes the reverse route index in the Pending Interest Table.
+
+.SH "OPTIONS"
+.IP "\-\-config \fIconfigfile\fR" 10
+Reads configuration parameters from
+\fIconfigfile\fR.
+The
+\fI\-\-port\fR option has no effect in this mode
+and Metis will not listen to any ports. This means that
+\fBmetis_control\fR will not be able to connect to Metis to configure it
+further unless one includes at least a listener for TCP localhost or a unix domain socket.
+
+.IP "\-\-capacity \fIcontentStoreSize\fR" 10
+Sets the capacity of the Content Store to
+\fIcontentStoreSize\fR content objects.
+Metis uses a least-recently-used eviction policy. A size of 0 will disable the
+Content Store.
+
+.IP "" 10
+The Content Store sits on the fast path of the forwarder, so there is a cost
+associated with adding and removing items to the Content Store tables.
+
+.IP "\-\-daemon" 10
+Runs Metis in daemon mode, detaching from the console. It must
+be run with the \fI\-\-log-file\fR option.
+
+.IP "\-\-log \fIfacility\fR=\fIlevel\fR" 10
+Sets the log level of the given
+\fIfacility\fR to the given
+\fIlevel\fR.
+The \fI\-\-log\fR option may be repeated
+several times setting the log level of different facilities. If the same
+facility is listed twice, only the last occurance takes effect.
+The default log level is Error for all facilities.
+
+.IP "" 10
+Facilities:
+.RS
+.IP " \(bu" 6
+all: All facilities.
+
+.IP " \(bu" 6
+config: Configuration activies.
+
+.IP " \(bu" 6
+core: Core forwarder, such as startup and shutdown.
+
+.IP " \(bu" 6
+io: Listeners, connections, and all I/O related activities.
+
+.IP " \(bu" 6
+message: CCNx messages, such as parsing.
+
+.IP " \(bu" 6
+processor: Forwarding processor, such as CS, FIB, and PIT activities.
+
+.RE
+
+.IP "" 10
+The log levels are: debug, info, notice, warning, error, critical, alert, off.
+
+.IP "\-\-log-file \fIlogfile\fR" 10
+Specifies the
+\fIlogfile\fR to write all log messages. This parameter is required with
+\fI\-\-daemon\fR mode.
+
+.IP "\-\-port \fIport\fR" 10
+The UDP and TCP port to listen on. If no
+\fIconfigfile\fR is specified, Metis will listen on this port on all interfaces
+including localhost.
+
+.IP "" 10
+If this parameter is not given, Metis uses the default port 9695.
+
+.SH "USAGE"
+.PP
+\fBmetis_daemon\fR \-\-config metis.cfg \-\-log all=info \-\-log config=debug \-\-log-file metis.log
+
+.SH "SEE ALSO"
+.PP
+See \fBmetis_control\fP\fB(1)\fP for a
+description of how to configure \fBmetis_daemon\fR.
+
+.PP
+For a list of all configuration lines that may be used with
+\fBmetis_control\fR and by \fI\-\-config\fR configuration file,
+see \fBmetis.cfg\fP\fB(5)\fP.
+
+.SH "CAVEATS"
+.IP " \(bu" 6
+A given interface may only have one Ethernet listener on one EtherType.
+
+.IP " \(bu" 6
+If there are multiple longest matching prefix entries that match an Interest, it will be
+forwarded to all those routes (i.e. multicast).
+
+.IP " \(bu" 6
+Ethernet fragmentation will only use the interface MTU and there is not MTU discovery. If Metis is
+used in a bridged environment, this may lead to errors if the MTU changes on different segments, such
+as a 10G link at 9000 bytes and a 100 Mbps link at 1500 bytes.
+
+.SH "BUGS"
+.IP " \(bu" 6
+Adding the same listener twice will cause Metis to crash.
+
+.IP " \(bu" 6
+Errors in the configuration file may cause Metis to crash.
+
+.IP " \(bu" 6
+The command 'list connections' will display all connections as TCP encapsulation.
+
+.SH "AUTHOR"
+.PP
+Marc Mosko Palo Alto Research Center
+.\" created by instant / docbook-to-man, Tue 26 May 2015, 01:54
diff --git a/metis/documentation/manpage/metis_daemon.1.html b/metis/documentation/manpage/metis_daemon.1.html
new file mode 100644
index 00000000..75d8c24b
--- /dev/null
+++ b/metis/documentation/manpage/metis_daemon.1.html
@@ -0,0 +1,405 @@
+<!-- Creator : groff version 1.22.2 -->
+<!-- CreationDate: Tue May 26 01:54:12 2015 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+ p { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ table { margin-top: 0; margin-bottom: 0; vertical-align: top }
+ h1 { text-align: center }
+</style>
+<title>metis_daemon</title>
+
+</head>
+<body>
+
+<h1 align="center">metis_daemon</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#OPTIONS">OPTIONS</a><br>
+<a href="#USAGE">USAGE</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+<a href="#CAVEATS">CAVEATS</a><br>
+<a href="#BUGS">BUGS</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="-3%">
+
+
+<p><b>metis_daemon</b></p></td>
+<td width="15%"></td>
+<td width="8%"></td>
+<td width="69%">
+
+
+<p>&mdash; Metis is the CCNx 1.0 forwarder, which runs on
+each end system and as a software forwarder on intermediate
+systems.</p> </td></tr>
+</table>
+
+<h2>SYNOPSIS
+<a name="SYNOPSIS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_daemon</b>
+[<b>&minus;&minus;port</b> <i>port</i>]
+[<b>&minus;&minus;daemon</b>] [<b>&minus;&minus;capacity</b>
+<i>contentStoreSize</i>] [<b>&minus;&minus;log</b>
+<i>facility=level</i> ...] [<b>&minus;&minus;log-file</b>
+<i>logfile</i>] [<b>&minus;&minus;config</b>
+<i>configfile</i>]</p>
+
+<h2>DESCRIPTION
+<a name="DESCRIPTION"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_daemon</b>
+is the CCNx 1.0 forwarder, which runs on each end system and
+as a software forwarder on intermediate systems.
+metis_daemon is the program to launch Metis, either as a
+console program or a background daemon (detatched from
+console). Once running, use the program <b>metis_control</b>
+to configure Metis.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Metis is
+structured as a set of Listeners, each of which handles a
+specific method of listening for packets. For example, a TCP
+listener will accept connections on a specific TCP port on a
+specific local IP address. An Ethernet listener will accept
+frames of a specific EtherType on a specific Interface.</p>
+
+<p style="margin-left:11%; margin-top: 1em">When Metis
+accepts a connection, it will create a Connection entry in
+the ConnectionTable to represent that peer. For Ethernet, a
+Connection is the tuple {dmac, smac, ethertype}. For TCP and
+UDP, it is the tuple {source IP, source port, destination
+IP, destination port}. The connid (connection ID) becomes
+the reverse route index in the Pending Interest Table.</p>
+
+<h2>OPTIONS
+<a name="OPTIONS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em">&minus;&minus;config
+<i>configfile</i></p>
+
+<p style="margin-left:26%;">Reads configuration parameters
+from <i>configfile</i>. The <i>&minus;&minus;port</i> option
+has no effect in this mode and Metis will not listen to any
+ports. This means that <b>metis_control</b> will not be able
+to connect to Metis to configure it further unless one
+includes at least a listener for TCP localhost or a unix
+domain socket.</p>
+
+<p style="margin-left:11%;">&minus;&minus;capacity
+<i>contentStoreSize</i></p>
+
+<p style="margin-left:26%;">Sets the capacity of the
+Content Store to <i>contentStoreSize</i> content objects.
+Metis uses a least-recently-used eviction policy. A size of
+0 will disable the Content Store.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="12%">
+</td>
+<td width="3%"></td>
+<td width="74%">
+
+
+<p>The Content Store sits on the fast path of the
+forwarder, so there is a cost associated with adding and
+removing items to the Content Store tables.</p></td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="12%">
+
+
+<p>&minus;&minus;daemon</p></td>
+<td width="3%"></td>
+<td width="74%">
+
+
+<p>Runs Metis in daemon mode, detaching from the console.
+It must be run with the <i>&minus;&minus;log-file</i>
+option.</p> </td></tr>
+</table>
+
+<p style="margin-left:11%;">&minus;&minus;log
+<i>facility</i>=<i>level</i></p>
+
+<p style="margin-left:26%;">Sets the log level of the given
+<i>facility</i> to the given <i>level</i>. The
+<i>&minus;&minus;log</i> option may be repeated several
+times setting the log level of different facilities. If the
+same facility is listed twice, only the last occurance takes
+effect. The default log level is Error for all
+facilities.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="17%">
+
+
+<p>Facilities:</p></td>
+<td width="57%">
+</td></tr>
+</table>
+
+<p style="margin-left:26%;">&bull;</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="31%"></td>
+<td width="1%"></td>
+<td width="3%"></td>
+<td width="65%">
+
+
+<p style="margin-top: 1em">all: All facilities.</p></td></tr>
+<tr valign="top" align="left">
+<td width="31%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="65%">
+
+
+<p>config: Configuration activies.</p></td></tr>
+<tr valign="top" align="left">
+<td width="31%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="65%">
+
+
+<p>core: Core forwarder, such as startup and shutdown.</p></td></tr>
+<tr valign="top" align="left">
+<td width="31%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="65%">
+
+
+<p>io: Listeners, connections, and all I/O related
+activities.</p> </td></tr>
+<tr valign="top" align="left">
+<td width="31%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="65%">
+
+
+<p>message: CCNx messages, such as parsing.</p></td></tr>
+<tr valign="top" align="left">
+<td width="31%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="65%">
+
+
+<p>processor: Forwarding processor, such as CS, FIB, and
+PIT activities.</p></td></tr>
+</table>
+
+<p style="margin-left:26%; margin-top: 1em">The log levels
+are: debug, info, notice, warning, error, critical, alert,
+off.</p>
+
+<p style="margin-left:11%;">&minus;&minus;log-file
+<i>logfile</i></p>
+
+<p style="margin-left:26%;">Specifies the <i>logfile</i> to
+write all log messages. This parameter is required with
+<i>&minus;&minus;daemon</i> mode.</p>
+
+<p style="margin-left:11%;">&minus;&minus;port
+<i>port</i></p>
+
+<p style="margin-left:26%;">The UDP and TCP port to listen
+on. If no <i>configfile</i> is specified, Metis will listen
+on this port on all interfaces including localhost.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="26%"></td>
+<td width="74%">
+
+
+<p>If this parameter is not given, Metis uses the default
+port 9695.</p></td></tr>
+</table>
+
+<h2>USAGE
+<a name="USAGE"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>metis_daemon</b>
+&minus;&minus;config metis.cfg &minus;&minus;log all=info
+&minus;&minus;log config=debug &minus;&minus;log-file
+metis.log</p>
+
+<h2>SEE ALSO
+<a name="SEE ALSO"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">See
+<b>metis_control(1)</b> for a description of how to
+configure <b>metis_daemon</b>.</p>
+
+<p style="margin-left:11%; margin-top: 1em">For a list of
+all configuration lines that may be used with
+<b>metis_control</b> and by <i>&minus;&minus;config</i>
+configuration file, see <b>metis.cfg(5)</b>.</p>
+
+<h2>CAVEATS
+<a name="CAVEATS"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p style="margin-top: 1em">&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p style="margin-top: 1em">A given interface may only have
+one Ethernet listener on one EtherType.</p></td></tr>
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p>If there are multiple longest matching prefix entries
+that match an Interest, it will be forwarded to all those
+routes (i.e. multicast).</p></td></tr>
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p>Ethernet fragmentation will only use the interface MTU
+and there is not MTU discovery. If Metis is used in a
+bridged environment, this may lead to errors if the MTU
+changes on different segments, such as a 10G link at 9000
+bytes and a 100 Mbps link at 1500 bytes.</p></td></tr>
+</table>
+
+<h2>BUGS
+<a name="BUGS"></a>
+</h2>
+
+
+<table width="100%" border="0" rules="none" frame="void"
+ cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p style="margin-top: 1em">&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p style="margin-top: 1em">Adding the same listener twice
+will cause Metis to crash.</p></td></tr>
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p>Errors in the configuration file may cause Metis to
+crash.</p> </td></tr>
+<tr valign="top" align="left">
+<td width="15%"></td>
+<td width="2%">
+
+
+<p>&bull;</p></td>
+<td width="3%"></td>
+<td width="80%">
+
+
+<p>The command &rsquo;list connections&rsquo; will display
+all connections as TCP encapsulation.</p></td></tr>
+</table>
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<p>Marc Mosko Palo Alto Research Center</p></table>
+<hr>
+</body>
+</html>
diff --git a/metis/documentation/manpage/metis_daemon.1.pdf b/metis/documentation/manpage/metis_daemon.1.pdf
new file mode 100644
index 00000000..8305cbb6
--- /dev/null
+++ b/metis/documentation/manpage/metis_daemon.1.pdf
Binary files differ
diff --git a/metis/documentation/manpage/metis_daemon.1.txt b/metis/documentation/manpage/metis_daemon.1.txt
new file mode 100644
index 00000000..7200db05
--- /dev/null
+++ b/metis/documentation/manpage/metis_daemon.1.txt
@@ -0,0 +1,159 @@
+ mmeettiiss__ddaaeemmoonn (1)General Commands Manual mmeettiiss__ddaaeemmoonn (1)
+
+
+
+NNAAMMEE
+ mmeettiiss__ddaaeemmoonn — Metis is the CCNx 1.0 forwarder, which runs on each
+ end system and as a software forwarder on intermediate systems.
+
+
+SSYYNNOOPPSSIISS
+ mmeettiiss__ddaaeemmoonn [----ppoorrtt _p_o_r_t] [----ddaaeemmoonn] [----ccaappaacciittyy _c_o_n_t_e_n_t_S_t_o_r_e_S_i_z_e]
+ [----lloogg _f_a_c_i_l_i_t_y_=_l_e_v_e_l ...] [----lloogg--ffiillee _l_o_g_f_i_l_e] [----ccoonnffiigg _c_o_n_f_i_g_f_i_l_e]
+
+DDEESSCCRRIIPPTTIIOONN
+ mmeettiiss__ddaaeemmoonn is the CCNx 1.0 forwarder, which runs on each end system
+ and as a software forwarder on intermediate systems. metis_daemon is
+ the program to launch Metis, either as a console program or a back‐
+ ground daemon (detatched from console). Once running, use the program
+ mmeettiiss__ccoonnttrrooll to configure Metis.
+
+
+ Metis is structured as a set of Listeners, each of which handles a spe‐
+ cific method of listening for packets. For example, a TCP listener
+ will accept connections on a specific TCP port on a specific local IP
+ address. An Ethernet listener will accept frames of a specific Ether‐
+ Type on a specific Interface.
+
+
+ When Metis accepts a connection, it will create a Connection entry in
+ the ConnectionTable to represent that peer. For Ethernet, a Connection
+ is the tuple {dmac, smac, ethertype}. For TCP and UDP, it is the tuple
+ {source IP, source port, destination IP, destination port}. The connid
+ (connection ID) becomes the reverse route index in the Pending Interest
+ Table.
+
+
+OOPPTTIIOONNSS
+ --config _c_o_n_f_i_g_f_i_l_e
+ Reads configuration parameters from _c_o_n_f_i_g_f_i_l_e. The _-_-_p_o_r_t
+ option has no effect in this mode and Metis will not listen
+ to any ports. This means that mmeettiiss__ccoonnttrrooll will not be able
+ to connect to Metis to configure it further unless one
+ includes at least a listener for TCP localhost or a unix
+ domain socket.
+
+
+ --capacity _c_o_n_t_e_n_t_S_t_o_r_e_S_i_z_e
+ Sets the capacity of the Content Store to _c_o_n_t_e_n_t_S_t_o_r_e_S_i_z_e
+ content objects. Metis uses a least-recently-used eviction
+ policy. A size of 0 will disable the Content Store.
+
+
+ The Content Store sits on the fast path of the forwarder, so
+ there is a cost associated with adding and removing items to
+ the Content Store tables.
+
+
+ --daemon Runs Metis in daemon mode, detaching from the console. It
+ must be run with the _-_-_l_o_g_-_f_i_l_e option.
+
+
+ --log _f_a_c_i_l_i_t_y=_l_e_v_e_l
+ Sets the log level of the given _f_a_c_i_l_i_t_y to the
+ given _l_e_v_e_l. The _-_-_l_o_g option may be repeated several times
+ setting the log level of different facilities. If the same
+ facility is listed twice, only the last occurance takes
+ effect. The default log level is Error for all facilities.
+
+
+ Facilities:
+
+ · all: All facilities.
+
+
+ · config: Configuration activies.
+
+
+ · core: Core forwarder, such as startup and shutdown.
+
+
+ · io: Listeners, connections, and all I/O related activi‐
+ ties.
+
+
+ · message: CCNx messages, such as parsing.
+
+
+ · processor: Forwarding processor, such as CS, FIB, and
+ PIT activities.
+
+
+
+ The log levels are: debug, info, notice, warning, error,
+ critical, alert, off.
+
+
+ --log-file _l_o_g_f_i_l_e
+ Specifies the _l_o_g_f_i_l_e to write all log messages.
+ This parameter is required with _-_-_d_a_e_m_o_n mode.
+
+
+ --port _p_o_r_t
+ The UDP and TCP port to listen on. If no _c_o_n_f_i_g_f_i_l_e
+ is specified, Metis will listen on this port on all inter‐
+ faces including localhost.
+
+
+ If this parameter is not given, Metis uses the default port
+ 9695.
+
+
+UUSSAAGGEE
+ mmeettiiss__ddaaeemmoonn --config metis.cfg --log all=info --log config=debug
+ --log-file metis.log
+
+
+SSEEEE AALLSSOO
+ See mmeettiiss__ccoonnttrrooll((11)) for a description of how to configure mmeettiiss__ddaaee‐‐
+ mmoonn.
+
+
+ For a list of all configuration lines that may be used with mmeettiiss__ccoonn‐‐
+ ttrrooll and by _-_-_c_o_n_f_i_g configuration file, see mmeettiiss..ccffgg((55)).
+
+
+CCAAVVEEAATTSS
+ · A given interface may only have one Ethernet listener on one
+ EtherType.
+
+
+ · If there are multiple longest matching prefix entries that match
+ an Interest, it will be forwarded to all those routes (i.e. mul‐
+ ticast).
+
+
+ · Ethernet fragmentation will only use the interface MTU and there
+ is not MTU discovery. If Metis is used in a bridged environment,
+ this may lead to errors if the MTU changes on different segments,
+ such as a 10G link at 9000 bytes and a 100 Mbps link at 1500
+ bytes.
+
+
+BBUUGGSS
+ · Adding the same listener twice will cause Metis to crash.
+
+
+ · Errors in the configuration file may cause Metis to crash.
+
+
+ · The command 'list connections' will display all connections as
+ TCP encapsulation.
+
+
+AAUUTTHHOORR
+ Marc Mosko Palo Alto Research Center
+
+
+
+ mmeettiiss__ddaaeemmoonn (1)