metis_daemon 1 metis_daemon Metis is the CCNx 1.0 forwarder, which runs on each end system and as a software forwarder on intermediate systems. metis_daemon port contentStoreSize facility=level logfile configfile DESCRIPTION metis_daemon 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 metis_control to configure Metis. 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. 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. OPTIONS --config configfile Reads configuration parameters from configfile. The --port option has no effect in this mode and Metis will not listen to any ports. This means that metis_control 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 contentStoreSize Sets the capacity of the Content Store to contentStoreSize 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 --log-file option. --log facility=level Sets the log level of the given facility to the given level. The --log 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 activities. 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 logfile Specifies the logfile to write all log messages. This parameter is required with --daemon mode. --port port The UDP and TCP port to listen on. If no configfile is specified, Metis will listen on this port on all interfaces including localhost. If this parameter is not given, Metis uses the default port 9695. USAGE metis_daemon --config metis.cfg --log all=info --log config=debug --log-file metis.log SEE ALSO See metis_control1 for a description of how to configure metis_daemon. For a list of all configuration lines that may be used with metis_control and by --config configuration file, see metis.cfg5. CAVEATS 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. multicast). 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. BUGS 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. AUTHOR Marc Mosko Palo Alto Research Center