diff options
Diffstat (limited to 'metis/documentation/manpage')
-rw-r--r-- | metis/documentation/manpage/HOWTO-ForwarderConfig | 188 | ||||
-rw-r--r-- | metis/documentation/manpage/Makefile.am | 26 | ||||
-rw-r--r-- | metis/documentation/manpage/metis.cfg.5 | 202 | ||||
-rw-r--r-- | metis/documentation/manpage/metis.cfg.5.html | 468 | ||||
-rw-r--r-- | metis/documentation/manpage/metis.cfg.5.pdf | bin | 0 -> 11340 bytes | |||
-rw-r--r-- | metis/documentation/manpage/metis.cfg.5.txt | 241 | ||||
-rw-r--r-- | metis/documentation/manpage/metis_control.1 | 79 | ||||
-rw-r--r-- | metis/documentation/manpage/metis_control.1.html | 280 | ||||
-rw-r--r-- | metis/documentation/manpage/metis_control.1.pdf | bin | 0 -> 6514 bytes | |||
-rw-r--r-- | metis/documentation/manpage/metis_control.1.txt | 87 | ||||
-rw-r--r-- | metis/documentation/manpage/metis_daemon.1 | 138 | ||||
-rw-r--r-- | metis/documentation/manpage/metis_daemon.1.html | 405 | ||||
-rw-r--r-- | metis/documentation/manpage/metis_daemon.1.pdf | bin | 0 -> 8628 bytes | |||
-rw-r--r-- | metis/documentation/manpage/metis_daemon.1.txt | 159 |
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>— <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 ’help’, so typing ’help +command’ will display on-line help.</p> + +<p style="margin-left:11%; margin-top: 1em">In a +configuration file, lines beginning with ’#’ 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 "−" or ":" +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 −− 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’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. "eth0"). 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> +’homenet’</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 +’en0’ 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 ’name’ (e.g. +’eth0’), 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. +’LONGEST’ means longest matching prefix and +’EXACT’ means exact match. Only +’LONGEST’ 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%;">> 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">> 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">> list +routes <br> +iface protocol route cost next prefix <br> +23 STATIC LONGEST 1 +−−-.−−-.−−-.−−-/.... +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">•</p></td> +<td width="3%"></td> +<td width="80%"> + + +<p style="margin-top: 1em">The output of ’list +interfaces’ 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 Binary files differnew file mode 100644 index 00000000..07ec3a95 --- /dev/null +++ b/metis/documentation/manpage/metis.cfg.5.pdf 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>— 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>−−keystore</b> <i>keystore</i>] +[<b>−−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">−−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%;">−−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> +−−keystore keystore.p12</p> + + +<p style="margin-left:11%; margin-top: 1em"><b>metis_control</b> +−−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>−−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 Binary files differnew file mode 100644 index 00000000..6088c69a --- /dev/null +++ b/metis/documentation/manpage/metis_control.1.pdf 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>— 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>−−port</b> <i>port</i>] +[<b>−−daemon</b>] [<b>−−capacity</b> +<i>contentStoreSize</i>] [<b>−−log</b> +<i>facility=level</i> ...] [<b>−−log-file</b> +<i>logfile</i>] [<b>−−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">−−config +<i>configfile</i></p> + +<p style="margin-left:26%;">Reads configuration parameters +from <i>configfile</i>. The <i>−−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%;">−−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>−−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>−−log-file</i> +option.</p> </td></tr> +</table> + +<p style="margin-left:11%;">−−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>−−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%;">•</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>•</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>•</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>•</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>•</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>•</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%;">−−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>−−daemon</i> mode.</p> + +<p style="margin-left:11%;">−−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> +−−config metis.cfg −−log all=info +−−log config=debug −−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>−−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">•</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>•</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>•</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">•</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>•</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>•</p></td> +<td width="3%"></td> +<td width="80%"> + + +<p>The command ’list connections’ 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 Binary files differnew file mode 100644 index 00000000..8305cbb6 --- /dev/null +++ b/metis/documentation/manpage/metis_daemon.1.pdf 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) |