diff options
Diffstat (limited to 'metis/documentation')
25 files changed, 8234 insertions, 0 deletions
diff --git a/metis/documentation/.gitignore b/metis/documentation/.gitignore new file mode 100644 index 00000000..50a829db --- /dev/null +++ b/metis/documentation/.gitignore @@ -0,0 +1 @@ +metis-documentation diff --git a/metis/documentation/Makefile.am b/metis/documentation/Makefile.am new file mode 100644 index 00000000..b11c8010 --- /dev/null +++ b/metis/documentation/Makefile.am @@ -0,0 +1,33 @@ +# +# 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. +# + +include ../config.mk + +SUBDIRS = manpage-source manpage + +docs: doxygen-metis + +doxygen-metis: metis.doxygen + ${DOXYGEN_BIN} -s metis.doxygen + ${LONGBOW_DOXYGEN_BIN_REPORT} -a --doxygenlog metis-doxygen.log + +website: longbow.log + $(MAKE) -C Jekyll + +# The Doxygen output directory removed here is set in metis.doxygen +clobber: clean + ${RM} -rf metis-documentation + +CLEANFILES=metis-doxygen.log diff --git a/metis/documentation/Makefile.notautomake b/metis/documentation/Makefile.notautomake new file mode 100644 index 00000000..eb45786e --- /dev/null +++ b/metis/documentation/Makefile.notautomake @@ -0,0 +1,40 @@ +DOXYGEN=/Applications/Doxygen.app/Contents/Resources/doxygen +INSTALLDIR=. + +# This needs to be the same filename that is in gh-pages branch, ./Makefile +GHPAGES=/tmp/metis-gh-pages.tgz + +all: doc + +score: all + (cd Jekyll/Libccnx/metis/latex ; make) | grep "Output.*pages" | tail -1 > metis.score + (echo Jekyll/Libccnx/metis/*.html | wc -w) >> metis.score + +clean: + make -C Jekyll clean + rm -rf Jekyll/Libccnx/metis/ + ${RM} doxygen.log metis.score + +help: + @echo "make doc Make the documentation" + @echo "make install Make a tar file containing the documentation suitable for a gh-page site." + @echo "make jekyll Make the Jekyll website (implicit when making 'doc')" + @echo "make all The same as make doc" + +doc: site metis + +metis: doxygen-metis.conf + ${DOXYGEN} doxygen-metis.conf >& doxygen.log + +install: doc + make -C Jekyll clean build + (cd Jekyll/Libccnx/_site; tar czf ${GHPAGES} . ) + @echo Now git checkout gh-pages and type make install + +site: + $(MAKE) -C Jekyll + +serve: + $(MAKE) -C Jekyll serve + +clobber: clean diff --git a/metis/documentation/manpage-source/Makefile.am b/metis/documentation/manpage-source/Makefile.am new file mode 100644 index 00000000..c130a91d --- /dev/null +++ b/metis/documentation/manpage-source/Makefile.am @@ -0,0 +1,80 @@ +# 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. +# +include ../../config.mk + +.PHONY: manpages + +SUBDIRS = + +OUTDIR= ../manpage + +MAN = $(OUTDIR)/metis_daemon.1 $(OUTDIR)/metis_control.1 $(OUTDIR)/metis.cfg.5 +TXT = $(OUTDIR)/metis_daemon.1.txt $(OUTDIR)/metis_control.1.txt $(OUTDIR)/metis.cfg.5.txt +HTML = $(OUTDIR)/metis_daemon.1.html $(OUTDIR)/metis_control.1.html $(OUTDIR)/metis.cfg.5.html +PDF = $(OUTDIR)/metis_daemon.1.pdf $(OUTDIR)/metis_control.1.pdf $(OUTDIR)/metis.cfg.5.pdf + +all: + @echo "usage: make manpages" + +manpages: $(TXT) $(MAN) $(HTML) $(PDF) + +$(OUTDIR): + mkdir -p $(OUTDIR) + +###### +$(OUTDIR)/metis_daemon.1: metis_daemon.sgml $(OUTDIR) + docbook-to-man $< > $@ + +$(OUTDIR)/metis_daemon.1.txt: $(OUTDIR)/metis_daemon.1 $(OUTDIR) + groff -man -Tutf8 $< > $@ + +$(OUTDIR)/metis_daemon.1.html: $(OUTDIR)/metis_daemon.1 $(OUTDIR) + groff -man -Thtml $< > $@ + +$(OUTDIR)/metis_daemon.1.pdf: $(OUTDIR)/metis_daemon.1 $(OUTDIR) + groff -man -Tps $< | ps2pdf - $@ + +###### +$(OUTDIR)/metis_control.1: metis_control.sgml $(OUTDIR) + docbook-to-man $< > $@ + +$(OUTDIR)/metis_control.1.txt: $(OUTDIR)/metis_control.1 $(OUTDIR) + groff -man -Tascii $< > $@ + +$(OUTDIR)/metis_control.1.html: $(OUTDIR)/metis_control.1 $(OUTDIR) + groff -man -Thtml $< > $@ + +$(OUTDIR)/metis_control.1.pdf: $(OUTDIR)/metis_control.1 $(OUTDIR) + groff -man -Tps $< | ps2pdf - $@ + +###### +$(OUTDIR)/metis.cfg.5: metis.cfg.sgml $(OUTDIR) + docbook-to-man $< > $@ + +$(OUTDIR)/metis.cfg.5.txt: $(OUTDIR)/metis.cfg.5 $(OUTDIR) + groff -man -Tascii $< > $@ + +$(OUTDIR)/metis.cfg.5.html: $(OUTDIR)/metis.cfg.5 $(OUTDIR) + groff -man -Thtml $< > $@ + +$(OUTDIR)/metis.cfg.5.pdf: $(OUTDIR)/metis.cfg.5 $(OUTDIR) + groff -man -Tps $< | ps2pdf - $@ + + +###### +#clobber: clean +# ${RM} -rf $(OUTDIR) +# +#CLEANFILES=$(TXT) $(MAN) $(HTML) + diff --git a/metis/documentation/manpage-source/README b/metis/documentation/manpage-source/README new file mode 100644 index 00000000..1aa7e48d --- /dev/null +++ b/metis/documentation/manpage-source/README @@ -0,0 +1,21 @@ +# 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. +# + +To process, it requires the following ubuntu packages installed: + + docbook docbook-to-man groff + +On other platforms, you can get software from http://www.docbook.org/, but +we have not tested docbook-to-man on Mac. + diff --git a/metis/documentation/manpage-source/metis.cfg.sgml b/metis/documentation/manpage-source/metis.cfg.sgml new file mode 100644 index 00000000..1cfee7d5 --- /dev/null +++ b/metis/documentation/manpage-source/metis.cfg.sgml @@ -0,0 +1,360 @@ +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<!-- --> +<!-- 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. --> +<!-- --> +<!-- --> + +<refentry> +<refmeta> + <refentrytitle> + <filename>metis.cfg</filename> + </refentrytitle> + <manvolnum>5</manvolnum> +</refmeta> + +<refnamediv> + <refname> + <filename>metis.cfg</filename> + </refname> + <refpurpose> +<filename>metis.cfg</filename> is an example of a configuation file usable with +<citerefentry><refentrytitle>metis_daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry>, +though there is nothing special about the actual filename. Each line of the configuration file is also usable with +<citerefentry><refentrytitle>metis_control</refentrytitle><manvolnum>1</manvolnum></citerefentry>. 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. + </refpurpose> +</refnamediv> + +<refsect1> + <title>ADD COMMANDS</title> + <variablelist> + <varlistentry> + <term>add connection ether <replaceable class="parameter">symbolic</replaceable> <replaceable class="parameter">dmac</replaceable> <replaceable class="parameter">interface</replaceable></term> + <listitem> + <para> + Adds an Ethernet connection on <replaceable class="parameter">interface</replaceable> to the given destination MAC address. + The <replaceable class="parameter">symbolic</replaceable> name is a symbolic name for the connection, which may be used in + later commands, such as <command>add route</command>. + There must be an Ethernet Listener on the specified interface (see <command>add listener</command>), and the connection + will use the same EtherType as the Listener. The <replaceable class="parameter">dmac</replaceable> destination MAC address + is in hexidecimal with optional "-" or ":" separators. + </para> + <para> + 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. + </para> + <para> + add connection ether conn7 e8-06-88-cd-28-de em3 + </para> + <para> + add connection ether bcast0 FFFFFFFFFFFF eth0 + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>add connection (tcp|udp) <replaceable class="parameter">symbolic</replaceable> <replaceable class="parameter">remote_ip</replaceable> <replaceable class="parameter">remote_port</replaceable> <replaceable class="parameter">local_ip</replaceable> <replaceable class="parameter">local_port</replaceable></term> + <listitem> + <para> + Opens a connection to the specific <replaceable class="parameter">remote_ip</replaceable> (which may be a hostname, though you do not have control over IPv4 or IPv6 in this case) on <replaceable class="parameter">remote_port</replaceable>. The local endpoint is given by <replaceable class="parameter">local_ip</replaceable> <replaceable class="parameter">local_port</replaceable>. While the <replaceable class="parameter">local_ip</replaceable> <replaceable class="parameter">local_port</replaceable> 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. + </para> + <para> + 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. + </para> + <para> + A UDP connection will start in the UP state and will not go DOWN unless there is a serious network error. + </para> + <variablelist> + <varlistentry> + <term>Opens a connection to 1.1.1.1 on port 1200 from the local address 2.2.2.2 port 1300</term> + <listitem> + <para> + add connection tcp conn0 1.1.1.1 1200 2.2.2.2 1300 + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>opens connection to IPv6 address on port 1300</term> + <listitem> + <para> + add connection udp barney2 fe80::aa20:66ff:fe00:314a 1300 + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term>add listener (tcp|udp) <replaceable class="parameter">symbolic</replaceable> <replaceable class="parameter">ip_address</replaceable> <replaceable class="parameter">port</replaceable></term> + <term>add listener ether <replaceable class="parameter">symbolic</replaceable> <replaceable class="parameter">interfaceName</replaceable> <replaceable class="parameter">ethertype</replaceable></term> + <term>add listener local <replaceable class="parameter">symbolic</replaceable> <replaceable class="parameter">path</replaceable></term> + <listitem> + <para> + Adds a protocol listener to accept packets of a given protocol (TCP or UDP or Ethernet). + The <replaceable class="parameter">symbolic</replaceable> name represents the listener and will be used in future commands + such as access list restrictions. If using a configuration file on <command>metis_daemon</command>, you must include + a listener on localhost for local applications to use. + </para> + <para> + The <replaceable class="parameter">ip_address</replaceable> is the IPv4 or IPv6 local address to bind to. + The <replaceable class="parameter">port</replaceable> is the TCP or UDP port to bind to. + </para> + <para> + The <replaceable class="parameter">interfaceName</replaceable> is the interface to open a raw socket on (e.g. "eth0"). + The <replaceable class="parameter">ethertype</replaceable> is the EtherType to use, represented as a 0x hex number (e.g. 0x0801) + or an integer (e.g. 2049). + </para> + <para> + The <replaceable class="parameter">path</replaceable> parameter specifies the file path to a unix domain socket. Metis + will create this file and remove it when it exits. + </para> + <variablelist> + <varlistentry> + <term>Listens to 192.168.1.7 on tcp port 9695 with a symbolic name 'homenet'</term> + <listitem> + <para> + add listener tcp homenet 192.168.1.7 9695 + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Listens to IPv6 localhost on udp port 9695</term> + <listitem> + <para> + add listener udp localhost6 ::1 9695 + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Listens to interface 'en0' on ethertype 0x0801</term> + <listitem> + <para> + add listener ether nic0 en0 0x0801 + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term>add route <replaceable class="parameter">symbolic</replaceable> <replaceable class="parameter">prefix</replaceable> <replaceable class="parameter">prefix</replaceable></term> + <listitem> + <para> + Adds a static route to a given <replaceable class="parameter">prefix</replaceable> to the FIB for longest match. + </para> + <para> + Currently, the <replaceable class="parameter">symbolic</replaceable> and <replaceable class="parameter">cost</replaceable> are not used. + </para> + </listitem> + </varlistentry> + + </variablelist> +</refsect1> + +<refsect1> + <title>LIST COMMANDS</title> + <variablelist> + <varlistentry> + <term>list connections</term> + <listitem> + <para> + 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. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>list interfaces</term> + <listitem> + <para> + 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. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>list routes</term> + <listitem> + <para> + Enumerates the routes installed in the FIB. + The <replaceable class="option">iface</replaceable> is the out-bound connection. + The <replaceable class="option">protocol</replaceable> is the the routing protocol that injected the route. + 'STATIC' means it was manually entered via <command>metis_control</command>. + <replaceable class="option">route</replaceable> is the route type. 'LONGEST' means longest matching prefix + and 'EXACT' means exact match. Only 'LONGEST' is supported. + <replaceable class="option">cost</replaceable> is the cost of the route. It is not used. + <replaceable class="option">next</replaceable> is the nexthop on a multiple access interface. it is not used + because the current implementation uses one connection (iface) per neighbor. + <replaceable class="option">prefix</replaceable> is the CCNx name prefix for the route. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Examples</term> + <listitem> + <programlisting linenumbering="numbered"> +> 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 + </programlisting> + </listitem> + </varlistentry> + </variablelist> +</refsect1> + +<refsect1> + <title>REMOVE COMMANDS</title> + <variablelist> + <varlistentry> + <term>remove connection</term> + <listitem> + <para> + Not implemented. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>remove route</term> + <listitem> + <para> + Not implemented. + </para> + </listitem> + </varlistentry> + </variablelist> +</refsect1> + +<refsect1> + <title>MISC COMMANDS</title> + <variablelist> + <varlistentry> + <term>quit</term> + <listitem> + <para> + In interactive mode of <command>metis_control</command>, it cause the program to exit. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>set debug</term> + <listitem> + <para> + Turns on the debugging flag in <command>metis_control</command> to display information about its connection to Metis. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>unset debug</term> + <listitem> + <para> + Turns off the debugging flag in <command>metis_control</command> to display information about its connection to Metis. + </para> + </listitem> + </varlistentry> + </variablelist> +</refsect1> + +<refsect1> + <title>USAGE</title> + <example><title>Example Linux metis.cfg configuration file</title> + <programlisting> +#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:/example.com 1 + </programlisting> + </example> + <example><title>Example one-shot metis_control commands</title> + <screen> + <command>metis_control</command> list routes + <command>metis_control</command> add listener local unix0 /tmp/metis.sock + </screen> + </example> +</refsect1> + +<refsect1> + <title>SEE ALSO</title> + <para> + <citerefentry><refentrytitle>metis_control</refentrytitle><manvolnum>1</manvolnum></citerefentry> + <citerefentry><refentrytitle>metis_daemon</refentrytitle><manvolnum>1</manvolnum></citerefentry> + </para> +</refsect1> + +<refsect1> + <title>CAVEATS</title> + <para> + </para> +</refsect1> +<refsect1> + <title>BUGS</title> + <itemizedlist mark='opencircle'> + <listitem><para> + The output of 'list interfaces' is difficult to read because multiple addresses + do not align. + </para></listitem> + </itemizedlist> + +</refsect1> +<refsect1> + <title>AUTHOR</title> + <para> + <author> + <firstname>Marc</firstname> + <surname>Mosko</surname> + <contrib>Palo Alto Research Center</contrib> + </author> + </para> +</refsect1> +</refentry> + + diff --git a/metis/documentation/manpage-source/metis_control.sgml b/metis/documentation/manpage-source/metis_control.sgml new file mode 100644 index 00000000..61d8bfb8 --- /dev/null +++ b/metis/documentation/manpage-source/metis_control.sgml @@ -0,0 +1,164 @@ +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<!-- --> +<!-- 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. --> +<!-- --> +<!-- --> +<refentry> +<refmeta> + <refentrytitle> + <application>metis_control</application> + </refentrytitle> + <manvolnum>1</manvolnum> +</refmeta> + +<refnamediv> + <refname> + <application>metis_control</application> + </refname> + <refpurpose> +Metis is the CCNx 1.0 forwarder, which runs on each end system and as a software forwarder +on intermediate systems. <command>metis_control</command> is the program to configure the forwarder, +<command>metis_daemon</command>. + </refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>metis_control</command> +<arg choice="opt"><option>--keystore</option> <replaceable class="parameter">keystore</replaceable></arg> +<arg choice="opt"><option>--password</option> <replaceable class="parameter">password</replaceable></arg> +<arg choice="opt">commandline</arg> + </cmdsynopsis> +</refsynopsisdiv> + +<refsect1> + <title>DESCRIPTION</title> + <para> + <command>metis_control</command> + is the program used to configure a running forwarder <command>metis_daemon</command>. It will connect to + the forwarder over a local listener (e.g. TCP to localhost or a unix domain socket). If a + <replaceable class="option">commandline</replaceable> option is specified, <command>metis_control</command> + will send that one command to Metis and then exit. If no <replaceable class="option">commandline</replaceable> + is specified, <command>metis_command</command> will enter interacitve mode where the user can issue + multiple commands. + </para> + <para> + <command>metis_control</command> requires a signing keystore for communicating over the network. The + <replaceable class="parameter">keystore</replaceable> file is a standard PKCS12 keystore, and may be + created using + <citerefentry><refentrytitle>parc_publickey</refentrytitle><manvolnum>1</manvolnum></citerefentry>. + If no <replaceable class="parameter">keystore</replaceable> is specified, <command>metis_control</command> + will look in the standard path ~/.ccnx/.ccnx_keystore.p12. + The keystore password is specified in <replaceable class="parameter">password</replaceable>. If not specified, + no password is used. If the keystore does not open, the user will be prompted for a password. + </para> + <para> + See <citerefentry><refentrytitle>metis.cfg</refentrytitle><manvolnum>5</manvolnum></citerefentry> for + a specification of the available <replaceable class="option">commandline</replaceable>. + </para> + <para> + 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. + </para> +</refsect1> + +<refsect1> + <title>OPTIONS</title> + <variablelist> + + <varlistentry> + <term>--keystore <replaceable class="parameter">keystore</replaceable></term> + <listitem> + <para> + <command>metis_control</command> requires a signing keystore for communicating over the network. The + <replaceable class="parameter">keystore</replaceable> file is a standard PKCS12 keystore, and may be + created using + <citerefentry><refentrytitle>parc_publickey</refentrytitle><manvolnum>1</manvolnum></citerefentry>. + If no <replaceable class="parameter">keystore</replaceable> is specified, <command>metis_control</command> + will look in the standard path ~/.ccnx/.ccnx_keystore.p12. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>--password <replaceable class="parameter">password</replaceable></term> + <listitem> + <para> + The keystore password is specified in <replaceable class="parameter">password</replaceable>. If not specified, + no password is used. If the keystore does not open, the user will be prompted for a password. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>commandline</term> + <listitem> + <para> + The remainder of the arguments are the commandline to send to Metis. See USAGE. + </para> + </listitem> + </varlistentry> + + </variablelist> +</refsect1> +<refsect1> + <title>USAGE</title> + <para> + <command>metis_control</command> --keystore keystore.p12 + </para> + <para> + <command>metis_control</command> --keystore keystore.p12 list interfaces + </para> +</refsect1> + +<refsect1> + <title>SEE ALSO</title> + <para> + See <citerefentry><refentrytitle>parc_publickey</refentrytitle><manvolnum>1</manvolnum></citerefentry> for a utility + to create a PKCS keystore. + </para> + <para> + For a list of all configuration lines that may be used with + <command>metis_control</command> and by <replaceable class="option">--config</replaceable> configuration file, + see <citerefentry><refentrytitle>metis.cfg</refentrytitle><manvolnum>5</manvolnum></citerefentry>. + </para> + <para> + The default keystore is ~/.ccnx/.ccnx_keystore.p12. + </para> +</refsect1> + +<refsect1> + <title>CAVEATS</title> + <para> + </para> +</refsect1> +<refsect1> + <title>BUGS</title> + <para> + </para> +</refsect1> +<refsect1> + <title>AUTHOR</title> + <para> + <author> + <firstname>Marc</firstname> + <surname>Mosko</surname> + <contrib>Palo Alto Research Center</contrib> + </author> + </para> +</refsect1> +</refentry> + + diff --git a/metis/documentation/manpage-source/metis_daemon.sgml b/metis/documentation/manpage-source/metis_daemon.sgml new file mode 100644 index 00000000..ccc0cf9c --- /dev/null +++ b/metis/documentation/manpage-source/metis_daemon.sgml @@ -0,0 +1,260 @@ +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> +<!-- --> +<!-- 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. --> +<!-- --> +<!-- --> +<refentry> +<refmeta> + <refentrytitle> + <application>metis_daemon</application> + </refentrytitle> + <manvolnum>1</manvolnum> +</refmeta> + +<refnamediv> + <refname> + <application>metis_daemon</application> + </refname> + <refpurpose> +Metis is the CCNx 1.0 forwarder, which runs on each end system and as a software forwarder +on intermediate systems. + </refpurpose> +</refnamediv> + +<refsynopsisdiv> + <cmdsynopsis> + <command>metis_daemon</command> +<arg choice="opt"><option>--port</option> <replaceable class="parameter">port</replaceable></arg> +<arg choice="opt"><option>--daemon</option></arg> +<arg choice="opt"><option>--capacity</option> <replaceable class="parameter">contentStoreSize</replaceable></arg> +<arg choice="opt" rep="repeat"><option>--log</option> <replaceable class="parameter">facility=level</replaceable></arg> +<arg choice="opt"><option>--log-file</option> <replaceable class="parameter">logfile</replaceable></arg> +<arg choice="opt"><option>--config</option> <replaceable class="parameter">configfile</replaceable></arg> + </cmdsynopsis> +</refsynopsisdiv> + +<refsect1> + <title>DESCRIPTION</title> + <para> + <command>metis_daemon</command> +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 <command>metis_control</command> to +configure Metis. + </para> + <para> +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. + </para> + <para> +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. + </para> +</refsect1> + +<refsect1> + <title>OPTIONS</title> + <variablelist> + + <varlistentry> + <term>--config <replaceable class="parameter">configfile</replaceable></term> + <listitem> + <para> + Reads configuration parameters from + <replaceable class="parameter">configfile</replaceable>. + The + <replaceable class="option">--port</replaceable> option has no effect in this mode + and Metis will not listen to any ports. This means that + <command>metis_control</command> 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. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>--capacity <replaceable class="parameter">contentStoreSize</replaceable></term> + <listitem> + <para> + Sets the capacity of the Content Store to + <replaceable class="parameter">contentStoreSize</replaceable> content objects. + Metis uses a least-recently-used eviction policy. A size of 0 will disable the + Content Store. + </para> + <para> + 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. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>--daemon</term> + <listitem> + <para> + Runs Metis in daemon mode, detaching from the console. It must + be run with the <replaceable class="option">--log-file</replaceable> option. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>--log <replaceable class="parameter">facility</replaceable>=<replaceable class="parameter">level</replaceable></term> + <listitem> + <para> + Sets the log level of the given + <replaceable class="parameter">facility</replaceable> + to the given + <replaceable class="parameter">level</replaceable>. + The <replaceable class="option">--log</replaceable> 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. + </para> + + <para> + Facilities:<itemizedlist mark='opencircle'> + <listitem><para> + all: All facilities. + </para></listitem> + + <listitem><para> + config: Configuration activies. + </para></listitem> + + <listitem><para> + core: Core forwarder, such as startup and shutdown. + </para></listitem> + + <listitem><para> + io: Listeners, connections, and all I/O related activities. + </para></listitem> + + <listitem><para> + message: CCNx messages, such as parsing. + </para></listitem> + + <listitem><para> + processor: Forwarding processor, such as CS, FIB, and PIT activities. + </para></listitem> + </itemizedlist> + </para> + + <para> + The log levels are: debug, info, notice, warning, error, critical, alert, off. + </para> + + </listitem> + </varlistentry> + + <varlistentry> + <term>--log-file <replaceable class="parameter">logfile</replaceable></term> + <listitem> + <para> + Specifies the + <replaceable class="parameter">logfile</replaceable> + to write all log messages. This parameter is required with + <replaceable class="option">--daemon</replaceable> mode. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term>--port <replaceable class="parameter">port</replaceable></term> + <listitem> + <para> + The UDP and TCP port to listen on. If no + <replaceable class="parameter">configfile</replaceable> + is specified, Metis will listen on this port on all interfaces + including localhost. + </para> + <para> + If this parameter is not given, Metis uses the default port 9695. + </para> + </listitem> + </varlistentry> + + </variablelist> +</refsect1> +<refsect1> + <title>USAGE</title> + <para> + <command>metis_daemon</command> --config metis.cfg --log all=info --log config=debug --log-file metis.log + </para> +</refsect1> + +<refsect1> + <title>SEE ALSO</title> + <para> + See <citerefentry><refentrytitle>metis_control</refentrytitle><manvolnum>1</manvolnum></citerefentry> for a + description of how to configure <command>metis_daemon</command>. + </para> + <para> + For a list of all configuration lines that may be used with + <command>metis_control</command> and by <replaceable class="option">--config</replaceable> configuration file, + see <citerefentry><refentrytitle>metis.cfg</refentrytitle><manvolnum>5</manvolnum></citerefentry>. + </para> +</refsect1> + +<refsect1> + <title>CAVEATS</title> + <itemizedlist mark='opencircle'> + <listitem><para> + A given interface may only have one Ethernet listener on one EtherType. + </para></listitem> + + <listitem><para> + If there are multiple longest matching prefix entries that match an Interest, it will be + forwarded to all those routes (i.e. multicast). + </para></listitem> + + <listitem><para> + 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. + </para></listitem> + </itemizedlist> +</refsect1> +<refsect1> + <title>BUGS</title> + <itemizedlist mark='opencircle'> + <listitem><para> + Adding the same listener twice will cause Metis to crash. + </para></listitem> + + <listitem><para> + Errors in the configuration file may cause Metis to crash. + </para></listitem> + + <listitem><para> + The command 'list connections' will display all connections as TCP encapsulation. + </para></listitem> + + </itemizedlist> + +</refsect1> +<refsect1> + <title>AUTHOR</title> + <para> + <author> + <firstname>Marc</firstname> + <surname>Mosko</surname> + <contrib>Palo Alto Research Center</contrib> + </author> + </para> +</refsect1> +</refentry> + + 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) diff --git a/metis/documentation/metis.doctags b/metis/documentation/metis.doctags new file mode 100644 index 00000000..bfc82647 --- /dev/null +++ b/metis/documentation/metis.doctags @@ -0,0 +1,2535 @@ +<?xml version='1.0' encoding='UTF-8' standalone='yes' ?> +<tagfile> + <compound kind="file"> + <name>metis_CommandLineInterface.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___command_line_interface_8h</filename> + <member kind="function"> + <type>MetisCommandLineInterface *</type> + <name>metisCommandLineInterface_Create</name> + <anchorfile>metis___command_line_interface_8h.html</anchorfile> + <anchor>a507100a2eb182e879182d8c7ef7a83bf</anchor> + <arglist>(MetisForwarder *metis, uint16_t port)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisCommandLineInterface_Destroy</name> + <anchorfile>metis___command_line_interface_8h.html</anchorfile> + <anchor>a1c21ace75da716c55253bbc544198121</anchor> + <arglist>(MetisCommandLineInterface **cliPtr)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_CommandOps.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___command_ops_8h</filename> + <includes id="metis___command_return_8h" name="metis_CommandReturn.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_CommandReturn.h</includes> + <class kind="struct">metis_command_ops</class> + <member kind="function"> + <type>MetisCommandOps *</type> + <name>metisCommandOps_Create</name> + <anchorfile>metis___command_ops_8h.html</anchorfile> + <anchor>a460a77764ab96dbe960465c670038c2e</anchor> + <arglist>(void *closure, const char *command, void(*init)(struct metis_command_parser *parser, MetisCommandOps *ops), MetisCommandReturn(*execute)(struct metis_command_parser *parser, MetisCommandOps *ops, PARCList *args), void(*destroyer)(MetisCommandOps **opsPtr))</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisCommandOps_Destroy</name> + <anchorfile>metis___command_ops_8h.html</anchorfile> + <anchor>ae5e8adaf088328e346ea831735cb0e75</anchor> + <arglist>(MetisCommandOps **opsPtr)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_CommandParser.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___command_parser_8h</filename> + <includes id="metis___command_return_8h" name="metis_CommandReturn.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_CommandReturn.h</includes> + <includes id="metis___command_ops_8h" name="metis_CommandOps.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_CommandOps.h</includes> + <member kind="function"> + <type>MetisCommandParser *</type> + <name>metisCommandParser_Create</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a44dcdf60ae4d9118a6a769c858df23eb</anchor> + <arglist>(void)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisCommandParser_Destroy</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a2f5021ae0fc62a743164cf3fdc971526</anchor> + <arglist>(MetisCommandParser **statePtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisCommandParser_RegisterCommand</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a940f9f340d5c83de0926eaa9d98ca0e8</anchor> + <arglist>(MetisCommandParser *state, MetisCommandOps *command)</arglist> + </member> + <member kind="function"> + <type>MetisCommandReturn</type> + <name>metisCommandParser_DispatchCommand</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a89912d93eff7fc70edb9613551b41dbb</anchor> + <arglist>(MetisCommandParser *state, PARCList *args)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisCommandParser_SetDebug</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a9ea10b379a52313ad290a088051a2dcc</anchor> + <arglist>(MetisCommandParser *state, bool debugFlag)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisCommandParser_GetDebug</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a49e8533a529047d9781cba77279e2c38</anchor> + <arglist>(MetisCommandParser *state)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisCommandParser_ContainsCommand</name> + <anchorfile>metis___command_parser_8h.html</anchorfile> + <anchor>a12b1473cf6169833adde186a6cc5801b</anchor> + <arglist>(MetisCommandParser *parser, const char *command)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_CommandReturn.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___command_return_8h</filename> + </compound> + <compound kind="file"> + <name>metis_Configuration.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___configuration_8h</filename> + <member kind="function"> + <type>MetisConfiguration *</type> + <name>metisConfiguration_Create</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a6382879264adb58b9f2a3c83ce68ecdf</anchor> + <arglist>(MetisForwarder *metis)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConfiguration_Destroy</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a906d7d9d6d73dbeebbdc143a99093552</anchor> + <arglist>(MetisConfiguration **configPtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConfiguration_Receive</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>aa881601d3b38400c4f0e840b159ee714</anchor> + <arglist>(MetisConfiguration *config, MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>CCNxControl *</type> + <name>metisConfiguration_ReceiveControl</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a1792d16c3672844069c02f76d50bcdb0</anchor> + <arglist>(MetisConfiguration *config, CCNxControl *request, unsigned ingressId)</arglist> + </member> + <member kind="function"> + <type>CCNxJson *</type> + <name>metisConfiguration_GetVersion</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a7b6f0cbd8bdadf8d228bc866c1294bd4</anchor> + <arglist>(MetisConfiguration *config)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConfiguration_StartCLI</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a7c3b48170736c7a2b0554783e85c1100</anchor> + <arglist>(MetisConfiguration *config, uint16_t port)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisConfiguration_GetObjectStoreSize</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a3e81e392888558dc354dae53754f4025</anchor> + <arglist>(MetisConfiguration *config)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConfiguration_SetObjectStoreSize</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a0c48eb7e4f055f4b700b755cf5ce019e</anchor> + <arglist>(MetisConfiguration *config, size_t maximumContentObjectCount)</arglist> + </member> + <member kind="function"> + <type>MetisForwarder *</type> + <name>metisConfiguration_GetForwarder</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>a161b6c11a69aae4422129d76ab40d487</anchor> + <arglist>(const MetisConfiguration *config)</arglist> + </member> + <member kind="function"> + <type>MetisLogger *</type> + <name>metisConfiguration_GetLogger</name> + <anchorfile>metis___configuration_8h.html</anchorfile> + <anchor>acf15e9d246eed9fe88e15025e1ca159a</anchor> + <arglist>(const MetisConfiguration *config)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_ConfigurationFile.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___configuration_file_8h</filename> + <member kind="function"> + <type>MetisConfigurationFile *</type> + <name>metisConfigurationFile_Create</name> + <anchorfile>metis___configuration_file_8h.html</anchorfile> + <anchor>aad7f425066389a09ec3b6ae85d526646</anchor> + <arglist>(MetisForwarder *metis, const char *filename)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisConfigurationFile_Process</name> + <anchorfile>metis___configuration_file_8h.html</anchorfile> + <anchor>ae67bdc76440f4f9e1e6297718802d400</anchor> + <arglist>(MetisConfigurationFile *configFile)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConfigurationFile_Release</name> + <anchorfile>metis___configuration_file_8h.html</anchorfile> + <anchor>a7524aea54c34d0504b8bf2d7221e0dcf</anchor> + <arglist>(MetisConfigurationFile **configFilePtr)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_ConfigurationListeners.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___configuration_listeners_8h</filename> + <includes id="metis___configuration_8h" name="metis_Configuration.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_Configuration.h</includes> + <member kind="function"> + <type>void</type> + <name>metisConfigurationListeners_SetupAll</name> + <anchorfile>metis___configuration_listeners_8h.html</anchorfile> + <anchor>a551220b4be78393ab80a7469a0205294</anchor> + <arglist>(const MetisConfiguration *config, uint16_t port, const char *localPath)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_ControlState.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___control_state_8h</filename> + <includes id="metis___command_parser_8h" name="metis_CommandParser.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_CommandParser.h</includes> + <member kind="function"> + <type>MetisControlState *</type> + <name>metisControlState_Create</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>adb162154a9a7dbe7be3ea71b6c069844</anchor> + <arglist>(void *userdata, CCNxMetaMessage *(*writeRead)(void *userdata, CCNxMetaMessage *msg))</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisControlState_Destroy</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>a4dbc825fa9713b135d71fbffb4bb6b9e</anchor> + <arglist>(MetisControlState **statePtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisControlState_RegisterCommand</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>a087045ff79c7a98e089fe68c2573c3fc</anchor> + <arglist>(MetisControlState *state, MetisCommandOps *command)</arglist> + </member> + <member kind="function"> + <type>MetisCommandReturn</type> + <name>metisControlState_DispatchCommand</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>ad33ee7773e4de244a7a4fa7cd5a2ab2e</anchor> + <arglist>(MetisControlState *state, PARCList *args)</arglist> + </member> + <member kind="function"> + <type>int</type> + <name>metisControlState_Interactive</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>a1f7288a5b94bdc1db5839bc7ad9541d0</anchor> + <arglist>(MetisControlState *state)</arglist> + </member> + <member kind="function"> + <type>CCNxMetaMessage *</type> + <name>metisControlState_WriteRead</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>af6cb12f3b67209d0b4fabbe80cca92df</anchor> + <arglist>(MetisControlState *state, CCNxMetaMessage *msg)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisControlState_SetDebug</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>ad2b0757b736e33bb8ac74716e57082b8</anchor> + <arglist>(MetisControlState *state, bool debugFlag)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisControlState_GetDebug</name> + <anchorfile>metis___control_state_8h.html</anchorfile> + <anchor>a440772afa7a4513c4496d2e10093093f</anchor> + <arglist>(MetisControlState *state)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_SymbolicNameTable.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis___symbolic_name_table_8h</filename> + <member kind="function"> + <type>MetisSymbolicNameTable *</type> + <name>metisSymbolicNameTable_Create</name> + <anchorfile>metis___symbolic_name_table_8h.html</anchorfile> + <anchor>a2dddf35b3d2284db5a9bac3d493f37e1</anchor> + <arglist>(void)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisSymbolicNameTable_Destroy</name> + <anchorfile>metis___symbolic_name_table_8h.html</anchorfile> + <anchor>a7e5d4926fb584639b6b80cb99a9c34a8</anchor> + <arglist>(MetisSymbolicNameTable **tablePtr)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisSymbolicNameTable_Exists</name> + <anchorfile>metis___symbolic_name_table_8h.html</anchorfile> + <anchor>a6e7c36b832fe8faadaa9bfe8e06f3802</anchor> + <arglist>(MetisSymbolicNameTable *table, const char *symbolicName)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisSymbolicNameTable_Add</name> + <anchorfile>metis___symbolic_name_table_8h.html</anchorfile> + <anchor>a5725f161f69820a91dcccfd0b109f326</anchor> + <arglist>(MetisSymbolicNameTable *table, const char *symbolicName, unsigned connid)</arglist> + </member> + <member kind="function"> + <type>unsigned</type> + <name>metisSymbolicNameTable_Get</name> + <anchorfile>metis___symbolic_name_table_8h.html</anchorfile> + <anchor>ac28d095e65cf9051d4afa82a7cb7b12c</anchor> + <arglist>(MetisSymbolicNameTable *table, const char *symbolicName)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metisControl_Add.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___add_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_AddConnection.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___add_connection_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_AddListener.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___add_listener_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_AddRoute.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___add_route_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_List.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___list_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_ListConnections.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___list_connections_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_ListInterfaces.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___list_interfaces_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_ListRoutes.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___list_routes_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_Quit.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___quit_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_Remove.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___remove_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_RemoveConnection.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___remove_connection_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_RemoveRoute.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___remove_route_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_Root.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___root_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_Set.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___set_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_SetDebug.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___set_debug_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_Unset.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___unset_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metisControl_UnsetDebug.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>metis_control___unset_debug_8h</filename> + <includes id="metis___control_state_8h" name="metis_ControlState.h" local="no" imported="no">ccnx/forwarder/metis/config/metis_ControlState.h</includes> + </compound> + <compound kind="file"> + <name>metis_LruList.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/content_store/</path> + <filename>metis___lru_list_8h</filename> + <member kind="function"> + <type>void</type> + <name>metisLruList_EntryDestroy</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>aac95f183695fef8ad382a3650fd6b1bd</anchor> + <arglist>(MetisLruListEntry **entryPtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLruList_EntryMoveToHead</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>a6287e1810508a80faca8cfea13099f39</anchor> + <arglist>(MetisLruListEntry *entry)</arglist> + </member> + <member kind="function"> + <type>void *</type> + <name>metisLruList_EntryGetData</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>aeede642d3ff01e95c598d90e6272dc63</anchor> + <arglist>(MetisLruListEntry *entry)</arglist> + </member> + <member kind="function"> + <type>MetisLruList *</type> + <name>metisLruList_Create</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>af2135dc2ff89bb768fd17ebe11a3fd03</anchor> + <arglist>()</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLruList_Destroy</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>a6f6253a61e76f3ee2410fdf3919f015a</anchor> + <arglist>(MetisLruList **listPtr)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisLruList_Length</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>ac0f77c6fbe79441bd78ea24d3300dabf</anchor> + <arglist>(const MetisLruList *lru)</arglist> + </member> + <member kind="function"> + <type>MetisLruListEntry *</type> + <name>metisLruList_NewHeadEntry</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>a6e3c09a439db12b26d727246deb6680a</anchor> + <arglist>(MetisLruList *lru, void *data)</arglist> + </member> + <member kind="function"> + <type>MetisLruListEntry *</type> + <name>metisLruList_PopTail</name> + <anchorfile>metis___lru_list_8h.html</anchorfile> + <anchor>ab4e2336b038c192d012d33c6ead013b2</anchor> + <arglist>(MetisLruList *list)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_Connection.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>metis___connection_8h</filename> + <includes id="metis___message_8h" name="metis_Message.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Message.h</includes> + <member kind="function"> + <type>MetisConnection *</type> + <name>metisConnection_Create</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>a6603f61a89df25768f7ead85db061f43</anchor> + <arglist>(MetisIoOperations *ops)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConnection_Release</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>abf256e4e94de6add9565cc9e0e515a37</anchor> + <arglist>(MetisConnection **connectionPtr)</arglist> + </member> + <member kind="function"> + <type>MetisConnection *</type> + <name>metisConnection_Acquire</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>a0e036fa4608a82b809646207eb0ec9fa</anchor> + <arglist>(MetisConnection *connection)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisConnection_Send</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>a485ea3bdab9a0a0b50e2278071dbb8a0</anchor> + <arglist>(const MetisConnection *conn, MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>MetisIoOperations *</type> + <name>metisConnection_GetIoOperations</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>ade5998d00c4ed27c48d94786bd2d1f40</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + <member kind="function"> + <type>unsigned</type> + <name>metisConnection_GetConnectionId</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>af6fb4f96acef9766c2ab85b01de95ba0</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + <member kind="function"> + <type>const MetisAddressPair *</type> + <name>metisConnection_GetAddressPair</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>a82c0a608ec7ab99752b67173819bf5e0</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisConnection_IsUp</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>a975463f86fa17d31e13a5c0fbd2bd195</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisConnection_IsLocal</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>adcd74cc8e59c28710df647b4d4aea1cb</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + <member kind="function"> + <type>const void *</type> + <name>metisConnection_Class</name> + <anchorfile>metis___connection_8h.html</anchorfile> + <anchor>a3801ef3ec37c0bf8d60cfbd3a0b03e4a</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_ConnectionList.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>metis___connection_list_8h</filename> + <includes id="metis___connection_8h" name="metis_Connection.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Connection.h</includes> + <member kind="function"> + <type>MetisConnectionList *</type> + <name>metisConnectionList_Create</name> + <anchorfile>metis___connection_list_8h.html</anchorfile> + <anchor>a31b395f7a4af32660344d563bbce757b</anchor> + <arglist>()</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConnectionList_Destroy</name> + <anchorfile>metis___connection_list_8h.html</anchorfile> + <anchor>a568d3b93704eec4a087ff6ca12f63a25</anchor> + <arglist>(MetisConnectionList **listPtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisConnectionList_Append</name> + <anchorfile>metis___connection_list_8h.html</anchorfile> + <anchor>ab7fd2bdb3f46cac78ecca5a74a5b41cd</anchor> + <arglist>(MetisConnectionList *list, MetisConnection *entry)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisConnectionList_Length</name> + <anchorfile>metis___connection_list_8h.html</anchorfile> + <anchor>adb36c5596eb3799d9432785d299b5429</anchor> + <arglist>(const MetisConnectionList *list)</arglist> + </member> + <member kind="function"> + <type>MetisConnection *</type> + <name>metisConnectionList_Get</name> + <anchorfile>metis___connection_list_8h.html</anchorfile> + <anchor>a43955c9189c58998dd2e7f8691582c16</anchor> + <arglist>(MetisConnectionList *list, size_t index)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_ConnectionManager.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>metis___connection_manager_8h</filename> + </compound> + <compound kind="file"> + <name>metis_Logger.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>metis___logger_8h</filename> + <member kind="enumeration"> + <type></type> + <name>MetisLoggerFacility</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>af6f96978398c78b149d59db816f07de1</anchor> + <arglist></arglist> + </member> + <member kind="function"> + <type>const char *</type> + <name>metisLogger_FacilityString</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>a78d7a12025012a82cb4af7a9f737b7b0</anchor> + <arglist>(MetisLoggerFacility facility)</arglist> + </member> + <member kind="function"> + <type>const char *</type> + <name>metisLogger_LevelString</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>a9e36241234b77c2bc1bec0287758cce6</anchor> + <arglist>(PARCLogLevel level)</arglist> + </member> + <member kind="function"> + <type>MetisLogger *</type> + <name>metisLogger_Create</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>af47b695f9249597bf3c1842d94f6c624</anchor> + <arglist>(PARCLogReporter *reporter, const PARCClock *clock)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLogger_Release</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>a9187428da1b126545d6f955a027f6b7b</anchor> + <arglist>(MetisLogger **loggerPtr)</arglist> + </member> + <member kind="function"> + <type>MetisLogger *</type> + <name>metisLogger_Acquire</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>a98867a5fd7b465b272820eb428d5bbf2</anchor> + <arglist>(const MetisLogger *logger)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLogger_SetLogLevel</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>ab30f66c50692ea6a6635a8a7742d0df9</anchor> + <arglist>(MetisLogger *logger, MetisLoggerFacility facility, PARCLogLevel minimumLevel)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisLogger_IsLoggable</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>add0c57181f96fbbbc6b4acae28c18bd8</anchor> + <arglist>(const MetisLogger *logger, MetisLoggerFacility facility, PARCLogLevel level)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLogger_Log</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>a0f3586d53e29fe5866c0f73cfd6d501d</anchor> + <arglist>(MetisLogger *logger, MetisLoggerFacility facility, PARCLogLevel level, const char *module, const char *format,...)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLogger_SetReporter</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>af15286afa1e2aaa4ca9abb49c5ac83fb</anchor> + <arglist>(MetisLogger *logger, PARCLogReporter *reporter)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisLogger_SetClock</name> + <anchorfile>metis___logger_8h.html</anchorfile> + <anchor>a83ad23793dfb55fceb99f7f52d61db93</anchor> + <arglist>(MetisLogger *logger, PARCClock *clock)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_Message.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>metis___message_8h</filename> + <includes id="metis___tlv_name_8h" name="metis_TlvName.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvName.h</includes> + <includes id="metis___tlv_8h" name="metis_Tlv.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_Tlv.h</includes> + <includes id="metis___ticks_8h" name="metis_Ticks.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Ticks.h</includes> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisMessage_ReadFromBuffer</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>af1ba0c2c77778536302768b60581f33d</anchor> + <arglist>(unsigned ingressConnectionId, MetisTicks receiveTime, PARCEventBuffer *input, size_t bytesToRead, MetisLogger *logger)</arglist> + </member> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisMessage_CreateFromBuffer</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a58d74b697b257ecce0fdc1deda7b978d</anchor> + <arglist>(unsigned ingressConnectionId, MetisTicks receiveTime, PARCEventBuffer *input, MetisLogger *logger)</arglist> + </member> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisMessage_CreateFromArray</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a2331b2752913632c0fc461871b37fe0f</anchor> + <arglist>(const uint8_t *data, size_t dataLength, unsigned ingressConnectionId, MetisTicks receiveTime, MetisLogger *logger)</arglist> + </member> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisMessage_CreateFromParcBuffer</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a1913c53ddfb3d4e782aac2ff52ddf6e7</anchor> + <arglist>(PARCBuffer *buffer, unsigned ingressConnectionId, MetisTicks receiveTime, MetisLogger *logger)</arglist> + </member> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisMessage_Acquire</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ae8e12171638e6d3a42a275efcd0fde6f</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessage_Release</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a05b9016dc77bd595ca42339a9b80584b</anchor> + <arglist>(MetisMessage **messagePtr)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_Write</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>aca1cbf7c196aaabf5e09245dd643e4cb</anchor> + <arglist>(PARCEventQueue *parcEventQueue, const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_Append</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ab39329d85848606adcfc2f70872b0444</anchor> + <arglist>(PARCEventBuffer *parcEventBuffer, const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisMessage_Length</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>af75f7f14b19e383907789aaa50b37470</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>unsigned</type> + <name>metisMessage_GetIngressConnectionId</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a2de1d0d0d08b0098a5fd31b362dbc146</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>MetisTicks</type> + <name>metisMessage_GetReceiveTime</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a1a401cf498ea2898c2f704fbc6130786</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>MetisMessagePacketType</type> + <name>metisMessage_GetType</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ac8c3ed3c2fc9cda599ada528a20cd987</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasHopLimit</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a943fcc9ecbcbf05a42e6da22c4404a35</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>uint8_t</type> + <name>metisMessage_GetHopLimit</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ac8fe16cbe8451cc97d09d06a7a2d7a83</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessage_SetHopLimit</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ac53c411fd47fd57d22e072c48b18532c</anchor> + <arglist>(MetisMessage *message, uint8_t hoplimit)</arglist> + </member> + <member kind="function"> + <type>MetisTlvName *</type> + <name>metisMessage_GetName</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ab334cff141390ae4dd7536d55d948f2f</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_GetKeyIdHash</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ac302163f97228e48f99df48bea3458e7</anchor> + <arglist>(const MetisMessage *message, uint32_t *hashOutput)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_KeyIdEquals</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a019587b74d0780f432a984dbab4b4ccd</anchor> + <arglist>(const MetisMessage *a, const MetisMessage *b)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_ObjectHashEquals</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a42c2f3747020ecf00750d9785199c47a</anchor> + <arglist>(MetisMessage *a, MetisMessage *b)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_GetContentObjectHashHash</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ae658db6490ad9eafbf553bcbfdce1003</anchor> + <arglist>(MetisMessage *message, uint32_t *hashOutput)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasName</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a169de2b5541bb03567c7b3825d979023</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasKeyId</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a66586d7d04d83636e789a31c7675ea99</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasContentObjectHash</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ae437157cc6ec1fdbf64d2c561eb93d45</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>CCNxControl *</type> + <name>metisMessage_CreateControlMessage</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a4cc897a70a843bd5b051ddc5c5cc51a3</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasInterestLifetime</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>aa7b34ad79743ac61edd03b1463792e23</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>uint64_t</type> + <name>metisMessage_GetInterestLifetimeTicks</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a6757de2026b67d6a447117a448d3809a</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasRecommendedCacheTime</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a873a581cded8a51594a9a4686222b7dd</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>uint64_t</type> + <name>metisMessage_GetRecommendedCacheTimeTicks</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>aa0dde4efb311707b0f768c7a03c2dcbd</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasExpiryTime</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a4a97ddf76749006df702b9848adb3911</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>uint64_t</type> + <name>metisMessage_GetExpiryTimeTicks</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>ae2d52b47bed547b3506f1c4dc444dcb8</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessage_SetExpiryTimeTicks</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a6675444d2dbb17b4189731703f8a83d5</anchor> + <arglist>(MetisMessage *message, uint64_t expiryTimeTicks)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessage_SetRecommendedCacheTimeTicks</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>aaa1d77c618f5a1750e0d6e71384a1ae4</anchor> + <arglist>(MetisMessage *message, uint64_t recommendedCacheTimeTicks)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessage_HasFragmentPayload</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a40abfa45c5f7126090529189b674cf6a</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisMessage_AppendFragmentPayload</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a4ad30e42d4f8bcd5c60bd7ce49f07dc7</anchor> + <arglist>(const MetisMessage *message, PARCEventBuffer *buffer)</arglist> + </member> + <member kind="function"> + <type>const uint8_t *</type> + <name>metisMessage_FixedHeader</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a63900417d180f9f794aace5cd209065b</anchor> + <arglist>(const MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisMessage_Slice</name> + <anchorfile>metis___message_8h.html</anchorfile> + <anchor>a3b5f3b0011981cce787aff21632716f8</anchor> + <arglist>(const MetisMessage *message, size_t offset, size_t length, size_t headerLength, const uint8_t header[headerLength])</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_Ticks.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>metis___ticks_8h</filename> + </compound> + <compound kind="file"> + <name>metis_EtherConnection.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___ether_connection_8h</filename> + <includes id="metis___connection_8h" name="metis_Connection.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Connection.h</includes> + <member kind="function"> + <type>MetisIoOperations *</type> + <name>metisEtherConnection_Create</name> + <anchorfile>metis___ether_connection_8h.html</anchorfile> + <anchor>a51a1a7ff06cae62f87f4d77d68ac8e5a</anchor> + <arglist>(MetisForwarder *metis, MetisGenericEther *ether, MetisAddressPair *pair)</arglist> + </member> + <member kind="function"> + <type>MetisHopByHopFragmenter *</type> + <name>metisEtherConnection_GetFragmenter</name> + <anchorfile>metis___ether_connection_8h.html</anchorfile> + <anchor>a4b3a91b679cda4448afa93b270769ec8</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisEtherConnection_IsInstanceOf</name> + <anchorfile>metis___ether_connection_8h.html</anchorfile> + <anchor>a12ebd7ff845647c94b7b71fdacb3f7e7</anchor> + <arglist>(const MetisConnection *conn)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_EtherListener.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___ether_listener_8h</filename> + <member kind="function"> + <type>MetisListenerOps *</type> + <name>metisEtherListener_Create</name> + <anchorfile>metis___ether_listener_8h.html</anchorfile> + <anchor>a52b483bd66c7f105d1a0249dae5f623d</anchor> + <arglist>(MetisForwarder *metis, const char *deviceName, uint16_t ethertype)</arglist> + </member> + <member kind="function"> + <type>MetisGenericEther *</type> + <name>metisEtherListener_GetGenericEtherFromListener</name> + <anchorfile>metis___ether_listener_8h.html</anchorfile> + <anchor>a879b79f29b8689fd60d3d5c3ad3dc8d7</anchor> + <arglist>(MetisListenerOps *listenerOps)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_Ethernet.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___ethernet_8h</filename> + <member kind="define"> + <type>#define</type> + <name>metisEthernet_IsValidEthertype</name> + <anchorfile>metis___ethernet_8h.html</anchorfile> + <anchor>abda02e865e5d9949944f561b39a6e319</anchor> + <arglist>(ethertype)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_Listener.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___listener_8h</filename> + <class kind="struct">metis_listener_ops</class> + <member kind="enumeration"> + <type></type> + <name>MetisEncapType</name> + <anchorfile>metis___listener_8h.html</anchorfile> + <anchor>a4fa21327f3898624d3c5ed5216285822</anchor> + <arglist></arglist> + </member> + <member kind="enumvalue"> + <type>@</type> + <name>METIS_ENCAP_TCP</name> + <anchorfile>metis___listener_8h.html</anchorfile> + <anchor>a4fa21327f3898624d3c5ed5216285822a39bb3c63c5d5ca812d7310a99fefc438</anchor> + <arglist></arglist> + </member> + <member kind="enumvalue"> + <type>@</type> + <name>METIS_ENCAP_UDP</name> + <anchorfile>metis___listener_8h.html</anchorfile> + <anchor>a4fa21327f3898624d3c5ed5216285822a0cc713e4c4392a6ed11fabb0c0a66e02</anchor> + <arglist></arglist> + </member> + <member kind="enumvalue"> + <type>@</type> + <name>METIS_ENCAP_ETHER</name> + <anchorfile>metis___listener_8h.html</anchorfile> + <anchor>a4fa21327f3898624d3c5ed5216285822a634e9642385bafbac465f1654b7124b5</anchor> + <arglist></arglist> + </member> + <member kind="enumvalue"> + <type>@</type> + <name>METIS_ENCAP_LOCAL</name> + <anchorfile>metis___listener_8h.html</anchorfile> + <anchor>a4fa21327f3898624d3c5ed5216285822a0286a0c76eeb875b7a7a24c20f24a9d6</anchor> + <arglist></arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_ListenerSet.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___listener_set_8h</filename> + <includes id="metis___listener_8h" name="metis_Listener.h" local="no" imported="no">ccnx/forwarder/metis/io/metis_Listener.h</includes> + <member kind="function"> + <type>MetisListenerSet *</type> + <name>metisListenerSet_Create</name> + <anchorfile>metis___listener_set_8h.html</anchorfile> + <anchor>a888a097e8ff73ab563032c274cae58a0</anchor> + <arglist>(void)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisListenerSet_Destroy</name> + <anchorfile>metis___listener_set_8h.html</anchorfile> + <anchor>a7adae3c77b503356eaf0968be7afd91d</anchor> + <arglist>(MetisListenerSet **setPtr)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisListenerSet_Add</name> + <anchorfile>metis___listener_set_8h.html</anchorfile> + <anchor>a6a254efd06f00ef6f76ea833e8b17720</anchor> + <arglist>(MetisListenerSet *set, MetisListenerOps *ops)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisListenerSet_Length</name> + <anchorfile>metis___listener_set_8h.html</anchorfile> + <anchor>aeb43bcfe0903a82adce80f27cce17a12</anchor> + <arglist>(const MetisListenerSet *set)</arglist> + </member> + <member kind="function"> + <type>MetisListenerOps *</type> + <name>metisListenerSet_Get</name> + <anchorfile>metis___listener_set_8h.html</anchorfile> + <anchor>aea935badcab88442e08f282ded488cd0</anchor> + <arglist>(const MetisListenerSet *set, size_t index)</arglist> + </member> + <member kind="function"> + <type>MetisListenerOps *</type> + <name>metisListenerSet_Find</name> + <anchorfile>metis___listener_set_8h.html</anchorfile> + <anchor>acdcff31c310e9e80ca67b2072d07e9c7</anchor> + <arglist>(const MetisListenerSet *set, MetisEncapType encapType, const CPIAddress *localAddress)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_TcpListener.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___tcp_listener_8h</filename> + <includes id="metis___listener_8h" name="metis_Listener.h" local="no" imported="no">ccnx/forwarder/metis/io/metis_Listener.h</includes> + </compound> + <compound kind="file"> + <name>metis_TcpTunnel.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___tcp_tunnel_8h</filename> + <member kind="function"> + <type>MetisIoOperations *</type> + <name>metisTcpTunnel_Create</name> + <anchorfile>metis___tcp_tunnel_8h.html</anchorfile> + <anchor>ac86a8b944b3b4591f4b726a41020c687</anchor> + <arglist>(MetisForwarder *metis, const CPIAddress *localAddress, const CPIAddress *remoteAddress)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_UdpConnection.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___udp_connection_8h</filename> + <member kind="function"> + <type>MetisIoOperations *</type> + <name>metisUdpConnection_Create</name> + <anchorfile>metis___udp_connection_8h.html</anchorfile> + <anchor>a0d1f779354382c3b2f5b3410b01ccece</anchor> + <arglist>(MetisForwarder *metis, int fd, const MetisAddressPair *pair, bool isLocal)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_UdpTunnel.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>metis___udp_tunnel_8h</filename> + <includes id="metis___listener_8h" name="metis_Listener.h" local="no" imported="no">ccnx/forwarder/metis/io/metis_Listener.h</includes> + <member kind="function"> + <type>MetisIoOperations *</type> + <name>metisUdpTunnel_CreateOnListener</name> + <anchorfile>metis___udp_tunnel_8h.html</anchorfile> + <anchor>ad512a131944415d7dab6eeafa5bcaf48</anchor> + <arglist>(MetisForwarder *metis, MetisListenerOps *localListener, const CPIAddress *remoteAddress)</arglist> + </member> + <member kind="function"> + <type>MetisIoOperations *</type> + <name>metisUdpTunnel_Create</name> + <anchorfile>metis___udp_tunnel_8h.html</anchorfile> + <anchor>a8edb7d377a2bfddc22f008f05ca05c64</anchor> + <arglist>(MetisForwarder *metis, const CPIAddress *localAddress, const CPIAddress *remoteAddress)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_MessengerRecipient.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/messenger/</path> + <filename>metis___messenger_recipient_8h</filename> + <member kind="typedef"> + <type>void(</type> + <name>MetisMessengerRecipientCallback</name> + <anchorfile>metis___messenger_recipient_8h.html</anchorfile> + <anchor>addc508a682ebbc3c86ccdd7b4cdb78e8</anchor> + <arglist>)(MetisMessengerRecipient *recipient, MetisMissive *missive)</arglist> + </member> + <member kind="function"> + <type>MetisMessengerRecipient *</type> + <name>metisMessengerRecipient_Create</name> + <anchorfile>metis___messenger_recipient_8h.html</anchorfile> + <anchor>a6e8d6204375a0a5c6776e67bc33ae617</anchor> + <arglist>(void *recipientContext, MetisMessengerRecipientCallback *recipientCallback)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessengerRecipient_Destroy</name> + <anchorfile>metis___messenger_recipient_8h.html</anchorfile> + <anchor>a5b497060ec18af2e63272b24ca546072</anchor> + <arglist>(MetisMessengerRecipient **recipientPtr)</arglist> + </member> + <member kind="function"> + <type>void *</type> + <name>metisMessengerRecipient_GetRecipientContext</name> + <anchorfile>metis___messenger_recipient_8h.html</anchorfile> + <anchor>a16a2252f9e965188209b7947c6843808</anchor> + <arglist>(MetisMessengerRecipient *recipient)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessengerRecipient_Deliver</name> + <anchorfile>metis___messenger_recipient_8h.html</anchorfile> + <anchor>ace08bf3dfd8e6b0fe9d2a1e3fe42a449</anchor> + <arglist>(MetisMessengerRecipient *recipient, MetisMissive *missive)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_Missive.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/messenger/</path> + <filename>metis___missive_8h</filename> + <member kind="function"> + <type>MetisMissive *</type> + <name>metisMissive_Create</name> + <anchorfile>metis___missive_8h.html</anchorfile> + <anchor>a6f59ac32c5bc215445f7748170a0ebf3</anchor> + <arglist>(MetisMissiveType missiveType, unsigned connectionid)</arglist> + </member> + <member kind="function"> + <type>MetisMissive *</type> + <name>metisMissive_Acquire</name> + <anchorfile>metis___missive_8h.html</anchorfile> + <anchor>aa06bd2d655623d71f2fc9e045ec1d588</anchor> + <arglist>(MetisMissive *missive)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMissive_Release</name> + <anchorfile>metis___missive_8h.html</anchorfile> + <anchor>a56e43f3512c1a5173f7a6be3f2bca02a</anchor> + <arglist>(MetisMissive **missivePtr)</arglist> + </member> + <member kind="function"> + <type>MetisMissiveType</type> + <name>metisMissive_GetType</name> + <anchorfile>metis___missive_8h.html</anchorfile> + <anchor>aeec3b360ee915c205d6ac7082cf2f528</anchor> + <arglist>(const MetisMissive *missive)</arglist> + </member> + <member kind="function"> + <type>unsigned</type> + <name>metisMissive_GetConnectionId</name> + <anchorfile>metis___missive_8h.html</anchorfile> + <anchor>a2baafbfb9c218f079a778b3bb54cd995</anchor> + <arglist>(const MetisMissive *missive)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_FibEntry.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___fib_entry_8h</filename> + <includes id="metis___tlv_name_8h" name="metis_TlvName.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvName.h</includes> + <includes id="metis___strategy_impl_8h" name="metis_StrategyImpl.h" local="no" imported="no">ccnx/forwarder/metis/strategies/metis_StrategyImpl.h</includes> + <member kind="function"> + <type>void</type> + <name>metisFibEntry_Release</name> + <anchorfile>metis___fib_entry_8h.html</anchorfile> + <anchor>ac92805b30d5e6fc2cfede9a06dc2e1e3</anchor> + <arglist>(MetisFibEntry **fibEntryPtr)</arglist> + </member> + <member kind="function"> + <type>MetisFibEntry *</type> + <name>metisFibEntry_Acquire</name> + <anchorfile>metis___fib_entry_8h.html</anchorfile> + <anchor>afaec485a9ea6412690e58855855a5d1e</anchor> + <arglist>(const MetisFibEntry *fibEntry)</arglist> + </member> + <member kind="function"> + <type>const MetisNumberSet *</type> + <name>metisFibEntry_GetNexthops</name> + <anchorfile>metis___fib_entry_8h.html</anchorfile> + <anchor>a2e0cf8d9bd40b4b49269d1a903d724a3</anchor> + <arglist>(const MetisFibEntry *fibEntry)</arglist> + </member> + <member kind="function"> + <type>MetisTlvName *</type> + <name>metisFibEntry_GetPrefix</name> + <anchorfile>metis___fib_entry_8h.html</anchorfile> + <anchor>ae1d262272615ed49483cc5f919980ee5</anchor> + <arglist>(const MetisFibEntry *fibEntry)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_FibEntryList.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___fib_entry_list_8h</filename> + <includes id="metis___fib_entry_8h" name="metis_FibEntry.h" local="no" imported="no">ccnx/forwarder/metis/processor/metis_FibEntry.h</includes> + <member kind="function"> + <type>MetisFibEntryList *</type> + <name>metisFibEntryList_Create</name> + <anchorfile>metis___fib_entry_list_8h.html</anchorfile> + <anchor>aba1a3595d5b7ab176167073cbad6f4e4</anchor> + <arglist>(void)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisFibEntryList_Destroy</name> + <anchorfile>metis___fib_entry_list_8h.html</anchorfile> + <anchor>ad662a9e9c30a9be17374dfef10b100d4</anchor> + <arglist>(MetisFibEntryList **listPtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisFibEntryList_Append</name> + <anchorfile>metis___fib_entry_list_8h.html</anchorfile> + <anchor>a74edf03a8a128f758f29717e92077f3e</anchor> + <arglist>(MetisFibEntryList *list, MetisFibEntry *fibEntry)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisFibEntryList_Length</name> + <anchorfile>metis___fib_entry_list_8h.html</anchorfile> + <anchor>a5633fafd9ab07ba980dc4f2d54d3d592</anchor> + <arglist>(const MetisFibEntryList *list)</arglist> + </member> + <member kind="function"> + <type>const MetisFibEntry *</type> + <name>metisFibEntryList_Get</name> + <anchorfile>metis___fib_entry_list_8h.html</anchorfile> + <anchor>a439ce4db2a9a62c79be001a34dcfcc44</anchor> + <arglist>(const MetisFibEntryList *list, size_t index)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_HashTableFunction.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___hash_table_function_8h</filename> + <member kind="function"> + <type>bool</type> + <name>metisHashTableFunction_MessageNameEquals</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>aca7c7730681178d54f74772eb302e3bd</anchor> + <arglist>(const void *metisMessageA, const void *metisMessageB)</arglist> + </member> + <member kind="function"> + <type>HashCodeType</type> + <name>metisHashTableFunction_MessageNameHashCode</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>a5dceccc2c414d9748e499b19fb6292ea</anchor> + <arglist>(const void *metisMessageA)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisHashTableFunction_MessageNameAndKeyIdEquals</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>ac9812e77676744fe32a0c9038dfddb26</anchor> + <arglist>(const void *metisMessageA, const void *metisMessageB)</arglist> + </member> + <member kind="function"> + <type>HashCodeType</type> + <name>metisHashTableFunction_MessageNameAndKeyIdHashCode</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>a7e0d71646c7b040ab8a9880cb06f8d35</anchor> + <arglist>(const void *metisMessageA)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisHashTableFunction_MessageNameAndObjectHashEquals</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>a4bf274cc19fa9714383690903b46ca27</anchor> + <arglist>(const void *metisMessageA, const void *metisMessageB)</arglist> + </member> + <member kind="function"> + <type>HashCodeType</type> + <name>metisHashTableFunction_MessageNameAndObjectHashHashCode</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>ab45220b34506e98acc47c1ca3f149483</anchor> + <arglist>(const void *metisMessageA)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisHashTableFunction_TlvNameEquals</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>ada6e88f2604322e3ca7e08cd19f9a850</anchor> + <arglist>(const void *metisTlvNameA, const void *metisTlvNameB)</arglist> + </member> + <member kind="function"> + <type>int</type> + <name>metisHashTableFunction_TlvNameCompare</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>a8e2f7b6257ff163c9bbbc44342e05e02</anchor> + <arglist>(const void *keyA, const void *keyB)</arglist> + </member> + <member kind="function"> + <type>HashCodeType</type> + <name>metisHashTableFunction_TlvNameHashCode</name> + <anchorfile>metis___hash_table_function_8h.html</anchorfile> + <anchor>a790c357d95846c69d593a7344f436a80</anchor> + <arglist>(const void *keyA)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_MessageProcessor.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___message_processor_8h</filename> + <includes id="metis___message_8h" name="metis_Message.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Message.h</includes> + <member kind="function"> + <type>MetisMessageProcessor *</type> + <name>metisMessageProcessor_Create</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a93a615ea6bc0eaa9796391a12a440257</anchor> + <arglist>(MetisForwarder *metis)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessageProcessor_Destroy</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a130639c5131141590cf246271a4069a0</anchor> + <arglist>(MetisMessageProcessor **processorPtr)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessageProcessor_Receive</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a1719693da99e24a46f92967fa8738f58</anchor> + <arglist>(MetisMessageProcessor *procesor, MetisMessage *message)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessageProcessor_AddTap</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>ad2f39bb814f6762e6df6da4e8f7d4e05</anchor> + <arglist>(MetisMessageProcessor *procesor, MetisTap *tap)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessageProcessor_RemoveTap</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a57586a65076765a69fcd6c396cf37b0c</anchor> + <arglist>(MetisMessageProcessor *procesor, const MetisTap *tap)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessageProcessor_AddOrUpdateRoute</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a2ab0caa2353068a9c34e5534f9b7ef3d</anchor> + <arglist>(MetisMessageProcessor *procesor, CPIRouteEntry *route)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisMessageProcessor_RemoveRoute</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a32c7f5ace5dd6c6be9bcbe7891b4bff3</anchor> + <arglist>(MetisMessageProcessor *procesor, CPIRouteEntry *route)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessageProcessor_RemoveConnectionIdFromRoutes</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a8d3826edc6b3e9086d55675af5065698</anchor> + <arglist>(MetisMessageProcessor *processor, unsigned connectionId)</arglist> + </member> + <member kind="function"> + <type>MetisFibEntryList *</type> + <name>metisMessageProcessor_GetFibEntries</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>ad79c42f0775f44f405b56e008fef2771</anchor> + <arglist>(MetisMessageProcessor *processor)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisMessageProcessor_SetContentObjectStoreSize</name> + <anchorfile>metis___message_processor_8h.html</anchorfile> + <anchor>a07855c5e58e312bd8f0b32271bb3dab2</anchor> + <arglist>(MetisMessageProcessor *processor, size_t maximumContentStoreSize)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_PIT.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___p_i_t_8h</filename> + <includes id="metis___message_8h" name="metis_Message.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Message.h</includes> + <includes id="metis___pit_entry_8h" name="metis_PitEntry.h" local="no" imported="no">ccnx/forwarder/metis/processor/metis_PitEntry.h</includes> + <includes id="metis___p_i_t_verdict_8h" name="metis_PITVerdict.h" local="no" imported="no">ccnx/forwarder/metis/processor/metis_PITVerdict.h</includes> + <member kind="function"> + <type>MetisPIT *</type> + <name>metisPIT_Create</name> + <anchorfile>metis___p_i_t_8h.html</anchorfile> + <anchor>acefd4bb72e4183afe554858f750ceb3a</anchor> + <arglist>(MetisForwarder *metis)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisPIT_Destroy</name> + <anchorfile>metis___p_i_t_8h.html</anchorfile> + <anchor>a3239e0b50c1652ba928d7690fb13d40f</anchor> + <arglist>(MetisPIT **pitPtr)</arglist> + </member> + <member kind="function"> + <type>MetisPITVerdict</type> + <name>metisPIT_ReceiveInterest</name> + <anchorfile>metis___p_i_t_8h.html</anchorfile> + <anchor>ae60cb68481debaad307847d1f6d0f370</anchor> + <arglist>(MetisPIT *pit, MetisMessage *interestMessage)</arglist> + </member> + <member kind="function"> + <type>MetisNumberSet *</type> + <name>metisPIT_SatisfyInterest</name> + <anchorfile>metis___p_i_t_8h.html</anchorfile> + <anchor>a6a36a444d61e1ac96c6cf7c03272baa6</anchor> + <arglist>(MetisPIT *pit, const MetisMessage *objectMessage)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisPIT_RemoveInterest</name> + <anchorfile>metis___p_i_t_8h.html</anchorfile> + <anchor>ab0414dd838d58d7619873cb339c9812c</anchor> + <arglist>(MetisPIT *pit, const MetisMessage *interestMessage)</arglist> + </member> + <member kind="function"> + <type>MetisPitEntry *</type> + <name>metisPIT_GetPitEntry</name> + <anchorfile>metis___p_i_t_8h.html</anchorfile> + <anchor>aa74b22c67cba8e31395186aec892d592</anchor> + <arglist>(const MetisPIT *pit, const MetisMessage *interestMessage)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_PitEntry.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___pit_entry_8h</filename> + <includes id="metis___ticks_8h" name="metis_Ticks.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Ticks.h</includes> + <includes id="metis___message_8h" name="metis_Message.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Message.h</includes> + <member kind="function"> + <type>MetisPitEntry *</type> + <name>metisPitEntry_Create</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>a9d9bbdf46e5b0729d28e4ad57b4397c7</anchor> + <arglist>(MetisMessage *message, MetisTicks expiryTime)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisPitEntry_Release</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>aeb9cab48893700131c48dcd732dbc5b2</anchor> + <arglist>(MetisPitEntry **pitEntryPtr)</arglist> + </member> + <member kind="function"> + <type>MetisPitEntry *</type> + <name>metisPitEntry_Acquire</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>ad41668940a50b2050fd5e6a903b8d33d</anchor> + <arglist>(MetisPitEntry *original)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisPitEntry_AddIngressId</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>adcad3c8c3ffb19bc0e3c75b3a7a56140</anchor> + <arglist>(MetisPitEntry *pitEntry, unsigned ingressId)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisPitEntry_AddEgressId</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>a3dc668a819de5f87d8072342a6868e61</anchor> + <arglist>(MetisPitEntry *pitEntry, unsigned egressId)</arglist> + </member> + <member kind="function"> + <type>const MetisNumberSet *</type> + <name>metisPitEntry_GetIngressSet</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>aea626737bb0f20d16e3d64bac5fbd88e</anchor> + <arglist>(const MetisPitEntry *pitEntry)</arglist> + </member> + <member kind="function"> + <type>const MetisNumberSet *</type> + <name>metisPitEntry_GetEgressSet</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>a79e33eeff7e61342a2efc4c1b2f22a96</anchor> + <arglist>(const MetisPitEntry *pitEntry)</arglist> + </member> + <member kind="function"> + <type>MetisMessage *</type> + <name>metisPitEntry_GetMessage</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>aa615be358bd8824120991dab996615b0</anchor> + <arglist>(const MetisPitEntry *pitEntry)</arglist> + </member> + <member kind="function"> + <type>MetisTicks</type> + <name>metisPitEntry_GetExpiryTime</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>ae13a59ec410028a7d10a89beef40c334</anchor> + <arglist>(const MetisPitEntry *pitEntry)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisPitEntry_SetExpiryTime</name> + <anchorfile>metis___pit_entry_8h.html</anchorfile> + <anchor>a503d85ec7345a1152aa127ef8f4966b3</anchor> + <arglist>(MetisPitEntry *pitEntry, MetisTicks expiryTime)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_PITVerdict.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>metis___p_i_t_verdict_8h</filename> + </compound> + <compound kind="file"> + <name>metis_StrategyImpl.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/strategies/</path> + <filename>metis___strategy_impl_8h</filename> + <includes id="metis___message_8h" name="metis_Message.h" local="no" imported="no">ccnx/forwarder/metis/core/metis_Message.h</includes> + <class kind="struct">metis_strategy_impl</class> + </compound> + <compound kind="file"> + <name>metis_Tlv.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_8h</filename> + <includes id="metis___tlv_extent_8h" name="metis_TlvExtent.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvExtent.h</includes> + <includes id="metis___tlv_skeleton_8h" name="metis_TlvSkeleton.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvSkeleton.h</includes> + <member kind="function"> + <type>struct</type> + <name>__attribute__</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>a732a50f434b24bb55fadde940376fc78</anchor> + <arglist>((packed)) metis_tlv_type</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisTlv_FixedHeaderLength</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>ac4a63c4936b1d2632bbd9ebecae914f2</anchor> + <arglist>(void)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisTlv_TotalHeaderLength</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>a0a06c16f5dedcc81b73264a59a35a00c</anchor> + <arglist>(const uint8_t *packet)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisTlv_TotalPacketLength</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>a25028d03d7748abd356bcd2532880f63</anchor> + <arglist>(const uint8_t *packet)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlv_NameSegments</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>a14f21b0e80c8d95c60850a3090b76b0c</anchor> + <arglist>(uint8_t *name, size_t nameLength, MetisTlvExtent **outputArrayPtr, size_t *outputLengthPtr)</arglist> + </member> + <member kind="function"> + <type>PARCBuffer *</type> + <name>metisTlv_EncodeControlPlaneInformation</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>a47e6afa43ac104f8f76f9a0cdc0b438b</anchor> + <arglist>(const CCNxControl *cpiControlMessage)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlv_ExtentToVarInt</name> + <anchorfile>metis___tlv_8h.html</anchorfile> + <anchor>a7d03676cf5557eb73af24ed42df1a4dc</anchor> + <arglist>(const uint8_t *packet, const MetisTlvExtent *extent, uint64_t *output)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_TlvExtent.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_extent_8h</filename> + <class kind="struct">MetisTlvExtent</class> + <member kind="function"> + <type>bool</type> + <name>metisTlvExtent_Equals</name> + <anchorfile>metis___tlv_extent_8h.html</anchorfile> + <anchor>a16fd2c2e6fa4a61330e72b8b7078acf4</anchor> + <arglist>(const MetisTlvExtent *a, const MetisTlvExtent *b)</arglist> + </member> + <member kind="variable"> + <type>const MetisTlvExtent</type> + <name>metisTlvExtent_NotFound</name> + <anchorfile>metis___tlv_extent_8h.html</anchorfile> + <anchor>a47fd23709789913e45c20c1bf137586c</anchor> + <arglist></arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_TlvName.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_name_8h</filename> + <member kind="function"> + <type>MetisTlvName *</type> + <name>metisTlvName_Create</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>ae1184ab52ee5b8b70390400a0ef550c5</anchor> + <arglist>(const uint8_t *memory, size_t length)</arglist> + </member> + <member kind="function"> + <type>MetisTlvName *</type> + <name>metisTlvName_CreateFromCCNxName</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>ab3e8c5e0a0144af0f177c86eb07b4234</anchor> + <arglist>(const CCNxName *ccnxName)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvName_Release</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>af07ce2611bf0d09b5e85a81ccd452353</anchor> + <arglist>(MetisTlvName **namePtr)</arglist> + </member> + <member kind="function"> + <type>MetisTlvName *</type> + <name>metisTlvName_Acquire</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>a366ee96fc0817d9ad8941d68d5d38cc2</anchor> + <arglist>(const MetisTlvName *original)</arglist> + </member> + <member kind="function"> + <type>MetisTlvName *</type> + <name>metisTlvName_Slice</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>a4198dd85ddec0c10627753850167c10c</anchor> + <arglist>(const MetisTlvName *original, size_t segmentCount)</arglist> + </member> + <member kind="function"> + <type>uint32_t</type> + <name>metisTlvName_HashCode</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>a6f372ebc3c6b2f11f9d18ea7b7ca7eb1</anchor> + <arglist>(const MetisTlvName *name)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvName_Equals</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>acd5b69f2ae230b35a74ee9f85da67605</anchor> + <arglist>(const MetisTlvName *a, const MetisTlvName *b)</arglist> + </member> + <member kind="function"> + <type>int</type> + <name>metisTlvName_Compare</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>ad3b3a46ca45bc99d62c37cc0cb4866a3</anchor> + <arglist>(const MetisTlvName *a, const MetisTlvName *b)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvName_StartsWith</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>adf825768034e44fb433e58720e0b5aab</anchor> + <arglist>(const MetisTlvName *name, const MetisTlvName *prefix)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisTlvName_SegmentCount</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>a2d49d7d4c48dedc9b97ffbc3a0f13d41</anchor> + <arglist>(const MetisTlvName *name)</arglist> + </member> + <member kind="function"> + <type>CCNxName *</type> + <name>metisTlvName_ToCCNxName</name> + <anchorfile>metis___tlv_name_8h.html</anchorfile> + <anchor>ab4ef3a6d61615fd60ce64ff3c2fe5cba</anchor> + <arglist>(const MetisTlvName *name)</arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_TlvOps.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_ops_8h</filename> + <includes id="metis___tlv_skeleton_8h" name="metis_TlvSkeleton.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvSkeleton.h</includes> + <class kind="struct">MetisTlvOps</class> + </compound> + <compound kind="file"> + <name>metis_TlvSchemaV0.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_schema_v0_8h</filename> + <includes id="metis___tlv_ops_8h" name="metis_TlvOps.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvOps.h</includes> + <member kind="variable"> + <type>const MetisTlvOps</type> + <name>MetisTlvSchemaV0_Ops</name> + <anchorfile>metis___tlv_schema_v0_8h.html</anchorfile> + <anchor>a7c5c57e8e3acf4ff7b5bc02c96a98c30</anchor> + <arglist></arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_TlvSchemaV1.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_schema_v1_8h</filename> + <includes id="metis___tlv_ops_8h" name="metis_TlvOps.h" local="no" imported="no">ccnx/forwarder/metis/tlv/metis_TlvOps.h</includes> + <member kind="variable"> + <type>const MetisTlvOps</type> + <name>MetisTlvSchemaV1_Ops</name> + <anchorfile>metis___tlv_schema_v1_8h.html</anchorfile> + <anchor>ae3151f3354693f887ad1de5369ae9ecd</anchor> + <arglist></arglist> + </member> + </compound> + <compound kind="file"> + <name>metis_TlvSkeleton.h</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>metis___tlv_skeleton_8h</filename> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetName</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a6dbbbb57743df5d99cf98a2b1310170b</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetKeyId</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a1699fb53dc71918b1e46ef20b7ffdc54</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetObjectHash</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a7218badabe871cc4a80d7b636cb8c5fd</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetHopLimit</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a0bd252f946e5f86de3b0f7d4281450cf</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetInterestLifetime</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>af47845c9d75d7648357406d0f6a8d618</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetCacheTimeHeader</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>ad7f3a9865f9c3a093a8fe8d7b8ba6da3</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetExpiryTime</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a88ea0d1211527ff93fb1334347bc2f5d</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetCPI</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a127c202d43248fba9bbccc0f9d29c724</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>void</type> + <name>metisTlvSkeleton_SetFragmentPayload</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a107aedd0586c2d0eaf4170e43a08257b</anchor> + <arglist>(MetisTlvSkeleton *skeleton, size_t offset, size_t length)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvSkeleton_UpdateHopLimit</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a68b62b3cd3c59a090a579c87172407d3</anchor> + <arglist>(MetisTlvSkeleton *skeleton, uint8_t hoplimit)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetName</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a06cd176a03286e605932adfa3da129e6</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetKeyId</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>acb54a3b418d87e082c00791c631ce20b</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetObjectHash</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a814217e1ef09a685b952a7c36cb04fae</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetHopLimit</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>ac91f3c8511fbf7789d8c78c4d59f85dd</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetInterestLifetime</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>ab292ae7c41a51060999590a777c767f5</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetCacheTimeHeader</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a3572250ca49c58ae9b97e06019f1f8f8</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetExpiryTime</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a33660f021938968e2bda32ec4b172fc7</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetCPI</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a2ae19162c5226efdbdf29f8706ada759</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisTlvExtent</type> + <name>metisTlvSkeleton_GetFragmentPayload</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a1b46516247bc258be5a773d8c3514d4a</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>const uint8_t *</type> + <name>metisTlvSkeleton_GetPacket</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a461cda6c1bb30ade1b996d77967abafc</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>size_t</type> + <name>metisTlvSkeleton_TotalPacket</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a4a44b90670b04e21369d1f1d7f5a60d3</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>PARCCryptoHash *</type> + <name>metisTlvSkeleton_ComputeContentObjectHash</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a0b5fb55b81c9bb176353ab5f0450b989</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvSkeleton_IsPacketTypeInterest</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a93c18a86d2c9ba34f72168c26c289175</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvSkeleton_IsPacketTypeContentObject</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a62f14dbd00510871f5c1e692550b00b2</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvSkeleton_IsPacketTypeControl</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>a161ab721ad0d50dccc46f3005a817ba7</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvSkeleton_IsPacketTypeInterestReturn</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>aae3ecd7d00c55c7214129bf5121b6cd7</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>bool</type> + <name>metisTlvSkeleton_IsPacketTypeHopByHopFragment</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>afd920b9ca995118924205c7868854dbf</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="function"> + <type>MetisLogger *</type> + <name>metisTlvSkeleton_GetLogger</name> + <anchorfile>metis___tlv_skeleton_8h.html</anchorfile> + <anchor>ad13192c46b1041770f121636ad95e78e</anchor> + <arglist>(const MetisTlvSkeleton *skeleton)</arglist> + </member> + </compound> + <compound kind="struct"> + <name>metis_command_ops</name> + <filename>structmetis__command__ops.html</filename> + </compound> + <compound kind="struct"> + <name>MetisContentStoreConfig</name> + <filename>struct_metis_content_store_config.html</filename> + </compound> + <compound kind="struct"> + <name>metis_contentstore_interface</name> + <filename>structmetis__contentstore__interface.html</filename> + <member kind="variable"> + <type>bool(*</type> + <name>putContent</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>ace270e9426aba3d802c791e4ebf8cd99</anchor> + <arglist>)(MetisContentStoreInterface *storeImpl, MetisMessage *content, uint64_t currentTimeTicks)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>removeContent</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>a604e96274262f924ca808d05447a4770</anchor> + <arglist>)(MetisContentStoreInterface *storeImpl, MetisMessage *content)</arglist> + </member> + <member kind="variable"> + <type>MetisMessage *(*</type> + <name>matchInterest</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>a6f03223331c65e1233f58ccea8a8e287</anchor> + <arglist>)(MetisContentStoreInterface *storeImpl, MetisMessage *interest)</arglist> + </member> + <member kind="variable"> + <type>size_t(*</type> + <name>getObjectCapacity</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>a1a11ff5fe0e3389fca208e2b3bde3959</anchor> + <arglist>)(MetisContentStoreInterface *storeImpl)</arglist> + </member> + <member kind="variable"> + <type>size_t(*</type> + <name>getObjectCount</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>acb9f016da47e88b6bb045b6a9d41ac55</anchor> + <arglist>)(MetisContentStoreInterface *storeImpl)</arglist> + </member> + <member kind="variable"> + <type>void(*</type> + <name>log</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>a9590a92d4c7009fa531e981a9d7fd780</anchor> + <arglist>)(MetisContentStoreInterface *storeImpl)</arglist> + </member> + <member kind="variable"> + <type>MetisContentStoreInterface *(*</type> + <name>acquire</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>aeb2504db9413e6a892417080ad1361ee</anchor> + <arglist>)(const MetisContentStoreInterface *storeImpl)</arglist> + </member> + <member kind="variable"> + <type>void(*</type> + <name>release</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>a7feaff8252bc58fac3cf6bddf7d957ed</anchor> + <arglist>)(MetisContentStoreInterface **storeImpl)</arglist> + </member> + <member kind="variable"> + <type>void *</type> + <name>_privateData</name> + <anchorfile>structmetis__contentstore__interface.html</anchorfile> + <anchor>ad32bd844894d3d7870c2f48782895c0d</anchor> + <arglist></arglist> + </member> + </compound> + <compound kind="struct"> + <name>metis_io_ops</name> + <filename>structmetis__io__ops.html</filename> + </compound> + <compound kind="struct"> + <name>metis_listener_ops</name> + <filename>structmetis__listener__ops.html</filename> + <member kind="variable"> + <type>void *</type> + <name>context</name> + <anchorfile>structmetis__listener__ops.html</anchorfile> + <anchor>ae376f130b17d169ee51be68077a89ed0</anchor> + <arglist></arglist> + </member> + <member kind="variable"> + <type>void(*</type> + <name>destroy</name> + <anchorfile>structmetis__listener__ops.html</anchorfile> + <anchor>ab351f1a0faac6a13ad2bea880eeae3a8</anchor> + <arglist>)(MetisListenerOps **listenerOpsPtr)</arglist> + </member> + <member kind="variable"> + <type>unsigned(*</type> + <name>getInterfaceIndex</name> + <anchorfile>structmetis__listener__ops.html</anchorfile> + <anchor>ad61fc0db38afd0c8229ec92cfa4673f4</anchor> + <arglist>)(const MetisListenerOps *ops)</arglist> + </member> + <member kind="variable"> + <type>const CPIAddress *(*</type> + <name>getListenAddress</name> + <anchorfile>structmetis__listener__ops.html</anchorfile> + <anchor>aaa3ad2ce97b8be6fc8d21095e091a0ef</anchor> + <arglist>)(const MetisListenerOps *ops)</arglist> + </member> + <member kind="variable"> + <type>MetisEncapType(*</type> + <name>getEncapType</name> + <anchorfile>structmetis__listener__ops.html</anchorfile> + <anchor>a4d9598b4fa9b483750a1f936135e437a</anchor> + <arglist>)(const MetisListenerOps *ops)</arglist> + </member> + <member kind="variable"> + <type>int(*</type> + <name>getSocket</name> + <anchorfile>structmetis__listener__ops.html</anchorfile> + <anchor>a40fc1619bfbc00af0c0296b3267148cd</anchor> + <arglist>)(const MetisListenerOps *ops)</arglist> + </member> + </compound> + <compound kind="struct"> + <name>metis_strategy_impl</name> + <filename>structmetis__strategy__impl.html</filename> + </compound> + <compound kind="struct"> + <name>metis_tap</name> + <filename>structmetis__tap.html</filename> + <member kind="variable"> + <type>void *</type> + <name>context</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>ae376f130b17d169ee51be68077a89ed0</anchor> + <arglist></arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isTapOnReceive</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>a9c52b339606f937ae225435937ebb3e9</anchor> + <arglist>)(const MetisTap *tap)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isTapOnSend</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>a549d8ba30c8bf09c397b627117509be4</anchor> + <arglist>)(const MetisTap *tap)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isTapOnDrop</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>a9018847753a290e4fb321f5b0f8713bd</anchor> + <arglist>)(const MetisTap *tap)</arglist> + </member> + <member kind="variable"> + <type>void(*</type> + <name>tapOnReceive</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>a4fde1ff1596dfe21bd66e7fd04c677a8</anchor> + <arglist>)(MetisTap *tap, const MetisMessage *message)</arglist> + </member> + <member kind="variable"> + <type>void(*</type> + <name>tapOnSend</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>accdafaccd2a2c2b7a81cf6970baace42</anchor> + <arglist>)(MetisTap *tap, const MetisMessage *message)</arglist> + </member> + <member kind="variable"> + <type>void(*</type> + <name>tapOnDrop</name> + <anchorfile>structmetis__tap.html</anchorfile> + <anchor>a11dcf8866ab30d59ebc9e89f5da745cb</anchor> + <arglist>)(MetisTap *tap, const MetisMessage *message)</arglist> + </member> + </compound> + <compound kind="struct"> + <name>MetisTlvExtent</name> + <filename>struct_metis_tlv_extent.html</filename> + </compound> + <compound kind="struct"> + <name>MetisTlvOps</name> + <filename>struct_metis_tlv_ops.html</filename> + <member kind="variable"> + <type>bool(*</type> + <name>parse</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>a75f3f13b34ed4ce5446f9c298ce53c11</anchor> + <arglist>)(MetisTlvSkeleton *skeleton)</arglist> + </member> + <member kind="variable"> + <type>PARCCryptoHash *(*</type> + <name>computeContentObjectHash</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>adb3e23026cc8289a4caf6dd305e78c48</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>PARCBuffer *(*</type> + <name>encodeControlPlaneInformation</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>a069666a1707e3f25bac3e0398c6ff5b7</anchor> + <arglist>)(const CCNxControl *cpiControlMessage)</arglist> + </member> + <member kind="variable"> + <type>size_t(*</type> + <name>totalHeaderLength</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>af10dedd276576e04f0ad139cb2151693</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>size_t(*</type> + <name>totalPacketLength</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>ac2814f2d85a05b019eef67fccb3d8d38</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>size_t(*</type> + <name>fixedHeaderLength</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>a0c72c61d6c1d967fd8a03311718d0a92</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isPacketTypeInterest</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>af27d7d84ef0d7fa34f97e074d2a4c081</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isPacketTypeContentObject</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>adcc5141e6f8280bfdaf4aac88fe12d7a</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isPacketTypeInterestReturn</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>a9ee30558bb8c8f762dd7f0bbd8d754d1</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isPacketTypeControl</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>a60f8ca8013d736222f90266e3e443658</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + <member kind="variable"> + <type>bool(*</type> + <name>isPacketTypeHopByHopFragment</name> + <anchorfile>struct_metis_tlv_ops.html</anchorfile> + <anchor>a3ac9301f8aed608209abb230dcd49090</anchor> + <arglist>)(const uint8_t *packet)</arglist> + </member> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx</name> + <path>/home/parallels/Distillery/Metis/ccnx/</path> + <filename>dir_bcfc85182c085d71da54f91e9bbfdc37.html</filename> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder</dir> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/</path> + <filename>dir_61559995d99aee0a184ff053457555e4.html</filename> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/metis_control</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/metis_daemon</dir> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config/</path> + <filename>dir_53f459e4205fd33777ae605604be70b4.html</filename> + <file>metis_CommandLineInterface.c</file> + <file>metis_CommandLineInterface.h</file> + <file>metis_CommandOps.c</file> + <file>metis_CommandOps.h</file> + <file>metis_CommandParser.c</file> + <file>metis_CommandParser.h</file> + <file>metis_CommandReturn.h</file> + <file>metis_Configuration.c</file> + <file>metis_Configuration.h</file> + <file>metis_ConfigurationFile.c</file> + <file>metis_ConfigurationFile.h</file> + <file>metis_ConfigurationListeners.c</file> + <file>metis_ConfigurationListeners.h</file> + <file>metis_ControlState.c</file> + <file>metis_ControlState.h</file> + <file>metis_SymbolicNameTable.c</file> + <file>metis_SymbolicNameTable.h</file> + <file>metis_WebInterface.h</file> + <file>metisControl_Add.c</file> + <file>metisControl_Add.h</file> + <file>metisControl_AddConnection.c</file> + <file>metisControl_AddConnection.h</file> + <file>metisControl_AddListener.c</file> + <file>metisControl_AddListener.h</file> + <file>metisControl_AddRoute.c</file> + <file>metisControl_AddRoute.h</file> + <file>metisControl_List.c</file> + <file>metisControl_List.h</file> + <file>metisControl_ListConnections.c</file> + <file>metisControl_ListConnections.h</file> + <file>metisControl_ListInterfaces.c</file> + <file>metisControl_ListInterfaces.h</file> + <file>metisControl_ListRoutes.c</file> + <file>metisControl_ListRoutes.h</file> + <file>metisControl_Quit.c</file> + <file>metisControl_Quit.h</file> + <file>metisControl_Remove.c</file> + <file>metisControl_Remove.h</file> + <file>metisControl_RemoveConnection.c</file> + <file>metisControl_RemoveConnection.h</file> + <file>metisControl_RemoveRoute.c</file> + <file>metisControl_RemoveRoute.h</file> + <file>metisControl_Root.c</file> + <file>metisControl_Root.h</file> + <file>metisControl_Set.c</file> + <file>metisControl_Set.h</file> + <file>metisControl_SetDebug.c</file> + <file>metisControl_SetDebug.h</file> + <file>metisControl_Unset.c</file> + <file>metisControl_Unset.h</file> + <file>metisControl_UnsetDebug.c</file> + <file>metisControl_UnsetDebug.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/content_store</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/content_store/</path> + <filename>dir_da15db01a0c1740d5d2cf1b7eaa642f0.html</filename> + <file>metis_ContentStoreEntry.c</file> + <file>metis_ContentStoreEntry.h</file> + <file>metis_ContentStoreInterface.c</file> + <file>metis_ContentStoreInterface.h</file> + <file>metis_LRUContentStore.c</file> + <file>metis_LRUContentStore.h</file> + <file>metis_LruList.c</file> + <file>metis_LruList.h</file> + <file>metis_TimeOrderedList.c</file> + <file>metis_TimeOrderedList.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core/</path> + <filename>dir_d0944960f0bc6d6ed79e71dabfb94b82.html</filename> + <file>metis_Connection.c</file> + <file>metis_Connection.h</file> + <file>metis_ConnectionList.c</file> + <file>metis_ConnectionList.h</file> + <file>metis_ConnectionManager.c</file> + <file>metis_ConnectionManager.h</file> + <file>metis_ConnectionTable.c</file> + <file>metis_ConnectionTable.h</file> + <file>metis_Dispatcher.c</file> + <file>metis_Dispatcher.h</file> + <file>metis_Forwarder.c</file> + <file>metis_Forwarder.h</file> + <file>metis_Logger.c</file> + <file>metis_Logger.h</file> + <file>metis_Message.c</file> + <file>metis_Message.h</file> + <file>metis_MessagePacketType.h</file> + <file>metis_NumberSet.c</file> + <file>metis_NumberSet.h</file> + <file>metis_StreamBuffer.c</file> + <file>metis_StreamBuffer.h</file> + <file>metis_System.h</file> + <file>metis_ThreadedForwarder.c</file> + <file>metis_ThreadedForwarder.h</file> + <file>metis_Ticks.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/darwin</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/darwin/</path> + <filename>dir_f8636dbddad0914cd28fb2329d39c7f0.html</filename> + <file>metis_GenericEther.c</file> + <file>metis_System.c</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/</path> + <filename>dir_4ee50b67fc4b706760971ccc714820b5.html</filename> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis</dir> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io/</path> + <filename>dir_94bf15c3dad66b9fa087937cefc0e4fc.html</filename> + <file>metis_AddressPair.c</file> + <file>metis_AddressPair.h</file> + <file>metis_EtherConnection.c</file> + <file>metis_EtherConnection.h</file> + <file>metis_EtherListener.c</file> + <file>metis_EtherListener.h</file> + <file>metis_Ethernet.h</file> + <file>metis_GenericEther.h</file> + <file>metis_HopByHopFragmenter.c</file> + <file>metis_HopByHopFragmenter.h</file> + <file>metis_Io.h</file> + <file>metis_IPMulticastListener.c</file> + <file>metis_IPMulticastListener.h</file> + <file>metis_Listener.h</file> + <file>metis_ListenerSet.c</file> + <file>metis_ListenerSet.h</file> + <file>metis_LocalListener.c</file> + <file>metis_LocalListener.h</file> + <file>metis_StreamConnection.c</file> + <file>metis_StreamConnection.h</file> + <file>metis_TcpListener.c</file> + <file>metis_TcpListener.h</file> + <file>metis_TcpTunnel.c</file> + <file>metis_TcpTunnel.h</file> + <file>metis_UdpConnection.c</file> + <file>metis_UdpConnection.h</file> + <file>metis_UdpController.h</file> + <file>metis_UdpListener.c</file> + <file>metis_UdpListener.h</file> + <file>metis_UdpTunnel.c</file> + <file>metis_UdpTunnel.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/linux</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/linux/</path> + <filename>dir_8b43bf6b3c312feb9882d61e79a2b952.html</filename> + <file>metis_GenericEther.c</file> + <file>metis_System.c</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/messenger</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/messenger/</path> + <filename>dir_37607365a96dca0bf90ecd46375f12b7.html</filename> + <file>metis_Messenger.c</file> + <file>metis_Messenger.h</file> + <file>metis_MessengerRecipient.c</file> + <file>metis_MessengerRecipient.h</file> + <file>metis_Missive.c</file> + <file>metis_Missive.h</file> + <file>metis_MissiveDeque.c</file> + <file>metis_MissiveDeque.h</file> + <file>metis_MissiveType.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/</path> + <filename>dir_e64ecc02f9581b59b9e6026f4e59781d.html</filename> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/config</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/content_store</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/core</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/io</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/messenger</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/strategies</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/testdata</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv</dir> + <file>metis_About.c</file> + <file>metis_About.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/metis_control</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/metis_control/</path> + <filename>dir_aefe288e02ddf0429fc3660b8d6e0913.html</filename> + <file>metisControl_main.c</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/metis_daemon</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/command-line/metis_daemon/</path> + <filename>dir_bdfb53277da556c143ba0b3170c1740d.html</filename> + <file>metis_daemon.c</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/</path> + <filename>dir_24bf99c83dd9d3b97453839b48f8fbe6.html</filename> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/darwin</dir> + <dir>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/platforms/linux</dir> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/processor/</path> + <filename>dir_831c94926ac1768bea48d105ac5e3c2f.html</filename> + <file>metis_ContentStore.c</file> + <file>metis_ContentStore.h</file> + <file>metis_ContentStoreEntry.c</file> + <file>metis_ContentStoreEntry.h</file> + <file>metis_FIB.c</file> + <file>metis_FIB.h</file> + <file>metis_FibEntry.c</file> + <file>metis_FibEntry.h</file> + <file>metis_FibEntryList.c</file> + <file>metis_FibEntryList.h</file> + <file>metis_HashTableFunction.c</file> + <file>metis_HashTableFunction.h</file> + <file>metis_MatchingRulesTable.c</file> + <file>metis_MatchingRulesTable.h</file> + <file>metis_MessageProcessor.c</file> + <file>metis_MessageProcessor.h</file> + <file>metis_PIT.c</file> + <file>metis_PIT.h</file> + <file>metis_PitEntry.c</file> + <file>metis_PitEntry.h</file> + <file>metis_PITVerdict.h</file> + <file>metis_Tap.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/strategies</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/strategies/</path> + <filename>dir_b3de3c19e8293656d51a9be4831d32e7.html</filename> + <file>metis_Strategy.h</file> + <file>metis_StrategyImpl.h</file> + <file>strategy_All.c</file> + <file>strategy_All.h</file> + <file>strategy_BestUnipath.h</file> + <file>strategy_CNF.h</file> + <file>strategy_WeightedRoundRobin.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/testdata</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/testdata/</path> + <filename>dir_05be9313265f0a7109110f819a26f7f0.html</filename> + <file>metis_TestDataV0.h</file> + <file>metis_TestDataV1.h</file> + </compound> + <compound kind="dir"> + <name>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv</name> + <path>/home/parallels/Distillery/Metis/ccnx/forwarder/metis/tlv/</path> + <filename>dir_b45adcd34b37ac4637ec690bd9c70d10.html</filename> + <file>metis_Tlv.c</file> + <file>metis_Tlv.h</file> + <file>metis_TlvExtent.c</file> + <file>metis_TlvExtent.h</file> + <file>metis_TlvName.c</file> + <file>metis_TlvName.h</file> + <file>metis_TlvNameCodec.c</file> + <file>metis_TlvNameCodec.h</file> + <file>metis_TlvOps.h</file> + <file>metis_TlvSchemaV0.c</file> + <file>metis_TlvSchemaV0.h</file> + <file>metis_TlvSchemaV1.c</file> + <file>metis_TlvSchemaV1.h</file> + <file>metis_TlvSkeleton.c</file> + <file>metis_TlvSkeleton.h</file> + </compound> +</tagfile> diff --git a/metis/documentation/metis.doxygen b/metis/documentation/metis.doxygen new file mode 100644 index 00000000..7218f8dd --- /dev/null +++ b/metis/documentation/metis.doxygen @@ -0,0 +1,2420 @@ +# Doxyfile 1.8.9.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = CCNxMetisForwarder + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = metis-documentation + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = YES + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = NO + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = YES + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if <section_label> ... \endif and \cond <section_label> +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = metis-doxygen.log + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. +# Note: If this tag is empty the current directory is searched. + +INPUT = ../ccnx + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.as \ + *.js + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = */examples/* \ + */tests/* \ + */test/* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# <filter> <input-file> +# +# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = stylesheet.css + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = com.parc.csl.libccnx + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = com.parc.csl + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = PARC + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use <access key> + S +# (what the <access key> is depends on the OS and browser, but it is typically +# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down +# key> to jump into the search results window, the results can be navigated +# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel +# the search. The filter options can be selected when the cursor is inside the +# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> +# to select a filter and <Enter> or <escape> to activate or cancel the filter +# option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. There +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain the +# search results. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: http://xapian.org/). +# +# See the section "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will return the search results when EXTERNAL_SEARCH is enabled. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: http://xapian.org/). See the section "External Indexing and +# Searching" for details. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. +# The default file is: searchdata.xml. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of +# to a relative location where the documentation can be found. The format is: +# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# The default value is: YES. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. +# +# Note that when enabling USE_PDFLATEX this option is only used for generating +# bitmaps for formulas in the HTML output, but not in the Makefile that is +# written to the output directory. +# The default file is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate +# index for LaTeX. +# The default file is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used by the +# printer. +# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x +# 14 inches) and executive (7.25 x 10.5 inches). +# The default value is: a4. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names +# that should be included in the LaTeX output. To get the times font for +# instance you can specify +# EXTRA_PACKAGES=times +# If left blank no extra packages will be included. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the +# generated LaTeX document. The header should contain everything until the first +# chapter. If it is left blank doxygen will generate a standard header. See +# section "Doxygen usage" for information on how to let doxygen write the +# default header to a separate file. +# +# Note: Only use a user-defined header if you know what you are doing! The +# following commands have a special meaning inside the header: $title, +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the +# generated LaTeX document. The footer should contain everything after the last +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. +# +# Note: Only use a user-defined footer if you know what you are doing! +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_FOOTER = + +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the LATEX_OUTPUT output +# directory. Note that the files will be copied as-is; there are no commands or +# markers available. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is +# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will +# contain links (just like the HTML output) instead of page references. This +# makes the output suitable for online browsing using a PDF viewer. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# higher quality PDF documentation. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode +# command to the generated LaTeX files. This will instruct LaTeX to keep running +# if errors occur, instead of asking the user for help. This option is also used +# when generating formulas in HTML. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BATCHMODE = NO + +# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# index chapters (such as File Index, Compound Index, etc.) in the output. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HIDE_INDICES = NO + +# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source +# code with syntax highlighting in the LaTeX output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. See +# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# The default value is: plain. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# RTF output is optimized for Word 97 and may not look too pretty with other RTF +# readers/editors. +# The default value is: NO. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: rtf. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will +# contain hyperlink fields. The RTF file will contain links (just like the HTML +# output) instead of page references. This makes the output suitable for online +# browsing using Word or some other Word compatible readers that support those +# fields. +# +# Note: WordPad (write) and others do not support links. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's config +# file, i.e. a series of assignments. You only have to provide replacements, +# missing definitions are set to their default value. +# +# See also section "Doxygen usage" for information on how to generate the +# default style sheet that doxygen normally uses. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an RTF document. Syntax is +# similar to doxygen's config file. A template extensions file can be generated +# using doxygen -e rtf extensionFile. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTENSIONS_FILE = + +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# classes and files. +# The default value is: NO. + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. A directory man3 will be created inside the directory specified by +# MAN_OUTPUT. +# The default directory is: man. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to the generated +# man pages. In case the manual section does not start with a number, the number +# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is +# optional. +# The default value is: .3. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_EXTENSION = .3 + +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + +# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# will generate one additional man file for each entity documented in the real +# man page(s). These additional files only source the real man page, but without +# them the man command would be unable to find the correct page. +# The default value is: NO. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# captures the structure of the code including all documentation. +# The default value is: NO. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: xml. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_OUTPUT = xml + +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# listings (including syntax highlighting and cross-referencing information) to +# the XML output. Note that enabling this will significantly increase the size +# of the XML output. +# The default value is: YES. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# that can be used to generate PDF. +# The default value is: NO. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. +# The default directory is: docbook. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_OUTPUT = docbook + +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sf.net) file that captures the +# structure of the code including all documentation. Note that this feature is +# still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# file that captures the structure of the code including all documentation. +# +# Note that this feature is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI +# output from the Perl module output. +# The default value is: NO. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# formatted so it can be parsed by a human reader. This is useful if you want to +# understand what is going on. On the other hand, if this tag is set to NO, the +# size of the Perl module output will be much smaller and Perl will parse it +# just the same. +# The default value is: YES. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file are +# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful +# so different doxyrules.make files included by the same Makefile don't +# overwrite each other's variables. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by the +# preprocessor. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tag files. For each tag +# file the location of the external documentation should be added. The format of +# a tag file without this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where loc1 and loc2 can be relative or absolute paths or URLs. See the +# section "Linking to external documentation" for more information about the use +# of tag files. +# Note: Each tag file must have a unique name (where the name does NOT include +# the path). If a tag file is not located in the directory in which doxygen is +# run, you must also specify the path to the tagfile here. + +TAGFILES = ../../../ccnxlibs/libccnx/documentation/libccnx.doctags= \ + ../../../cframework/libparc/documentation/libparc.doctags= \ + ../../../cframework/longbow/documentation/longbow.doctags= + + + + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# tag file that is based on the input files it reads. See section "Linking to +# external documentation" for more information about the usage of tag files. + +GENERATE_TAGFILE = metis.doctags + +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. +# The default value is: NO. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be +# listed. +# The default value is: YES. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# the related pages index. If set to NO, only the current project's pages will +# be listed. +# The default value is: YES. + +EXTERNAL_PAGES = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of 'which perl'). +# The default file (with absolute path) is: /usr/bin/perl. + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to +# NO turns the diagrams off. Note that this option also works with HAVE_DOT +# disabled, but it is recommended to install and use dot, since it yields more +# powerful graphs. +# The default value is: YES. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see: +# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. + +DIA_PATH = + +# If set to YES the inheritance and collaboration graphs will hide inheritance +# and usage relations if the target is undocumented or is not a class. +# The default value is: YES. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz (see: +# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# Bell Labs. The other options in this section have no effect if this option is +# set to NO +# The default value is: NO. + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed +# to run in parallel. When set to 0 doxygen will base this on the number of +# processors available in the system. You can set it explicitly to a value +# larger than 0 to get control over the balance between CPU load and processing +# speed. +# Minimum value: 0, maximum value: 32, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NUM_THREADS = 0 + +# When you want a differently looking font in the dot files that doxygen +# generates you can specify the font name using DOT_FONTNAME. You need to make +# sure dot is able to find the font, which can be done by putting it in a +# standard location or by setting the DOTFONTPATH environment variable or by +# setting DOT_FONTPATH to the directory containing the font. +# The default value is: Helvetica. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of +# dot graphs. +# Minimum value: 4, maximum value: 24, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the default font as specified with +# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set +# the path where dot can find it using this tag. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTPATH = + +# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for +# each documented class showing the direct and indirect inheritance relations. +# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# graph for each documented class showing the direct and indirect implementation +# dependencies (inheritance, containment, and class references variables) of the +# class with other documented classes. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# groups, showing the direct groups dependencies. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside the +# class node. If there are many fields or methods and many nodes the graph may +# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the +# number of items for each type to make the size more manageable. Set this to 0 +# for no limit. Note that the threshold may be exceeded by 50% before the limit +# is enforced. So when you set the threshold to 10, up to 15 fields may appear, +# but if the number exceeds 15, the total amount of fields shown is limited to +# 10. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LIMIT_NUM_FIELDS = 10 + +# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and +# collaboration graphs will show the relations between templates and their +# instances. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +TEMPLATE_RELATIONS = NO + +# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to +# YES then doxygen will generate a graph for each documented file showing the +# direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDE_GRAPH = YES + +# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are +# set to YES then doxygen will generate a graph for each documented file showing +# the direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# hierarchy of all classes instead of a textual one. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# dependencies a directory has on other directories in a graphical way. The +# dependency relations are determined by the #include relations between the +# files in the directories. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. +# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order +# to make the SVG files visible in IE 9+ (other browsers do not have this +# requirement). +# Possible values are: png, jpg, gif and svg. +# The default value is: png. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# +# Note that this requires a modern browser other than Internet Explorer. Tested +# and working are Firefox, Chrome, Safari, and Opera. +# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make +# the SVG files visible. Older versions of IE do not have SVG support. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +INTERACTIVE_SVG = NO + +# The DOT_PATH tag can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the \dotfile +# command). +# This tag requires that the tag HAVE_DOT is set to YES. + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = + +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. + +PLANTUML_JAR_PATH = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes +# that will be shown in the graph. If the number of nodes in a graph becomes +# larger than this value, doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that doxygen if the number of direct +# children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that +# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# Minimum value: 0, maximum value: 10000, default value: 50. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs +# generated by dot. A depth value of 3 means that only nodes reachable from the +# root by following a path via at most 3 edges will be shown. Nodes that lay +# further from the root node will be omitted. Note that setting this option to 1 +# or 2 may greatly reduce the computation time needed for large code bases. Also +# note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. +# Minimum value: 0, maximum value: 1000, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not seem +# to support this out of the box. +# +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) support +# this, this feature is disabled by default. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# explaining the meaning of the various boxes and arrows in the dot generated +# graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# files that are used to generate the various graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_CLEANUP = YES diff --git a/metis/documentation/stylesheet.css b/metis/documentation/stylesheet.css new file mode 100644 index 00000000..fb5cda7c --- /dev/null +++ b/metis/documentation/stylesheet.css @@ -0,0 +1,47 @@ +body { + xbackground-color: #111111; + xcolor: white; + margin: 0; + padding: 11% 11% 0 11%; +} + +xdiv#top { + margin: 0 11% 0 11%; + padding: 4em 3% 4em 3%; + background-color: white; + color: black; + border-radius: 8px; +} + +xdiv.header { + margin: 0 11% 0 11%; + padding: 4em 3% 4em 3%; + background-color: grey; + color: black; + border-radius: 8px; +} + +div.contents { + xbackground-image: url(noise_gradient.jpg); + xbackground-repeat: no-repeat; + /*margin: 0 11% 0 11%;*/ + /*padding: 4em 3% 4em 3%;*/ +/* background-color: white;*/ + xcolor: white; + xborder-radius: 8px; +} + +x#titlearea { + border: 2px solid red; + background-color: white; + color: black; +} + +xhr.footer { + display: none; +} + +x.footer { + background-color: #AAA; + color: black; +} |