diff options
Diffstat (limited to 'metis/ccnx/forwarder/metis/README.txt')
-rw-r--r-- | metis/ccnx/forwarder/metis/README.txt | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/metis/ccnx/forwarder/metis/README.txt b/metis/ccnx/forwarder/metis/README.txt new file mode 100644 index 00000000..37c6306a --- /dev/null +++ b/metis/ccnx/forwarder/metis/README.txt @@ -0,0 +1,90 @@ +/* + * 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. + */ + +================= +Metis (mythology) +Metis was the the Titaness of wisdom and deep thought. The Greek word +"metis" meant a quality that combined wisdom and cunning. +================= + +Metis is the CCNx 1.0 forwarder. It uses a modular design so adding new +encapsulations, forwarding behavior, or event dispatching is +well-defined and has minimum (or no) side effects. + +================= +Building + +"make" will create "libmetis.a" and "metis". The library is used by other +parts of Libccnx, such as Transport testing and the mobile builds. The +executable "metis" is for command-line invocation of a forwarding daemon. + +Metis uses a few things from parc/algol and ccnx/common. + +Metis uses the LongBow XUnit test framework. "make check" will run the tests. + +Metis is built with Libevent 2.0 for the dispatcher. Libevent is visible in the +code in the following modules. To use a different event dispatcher, these modules +would need to be updated: metisDispatcher.c, metisStreamBuffer.c, metisMessage.c, +metis_StreamConnection.c + +================= +Code Layout + +Each directory has its code and headers along with a test/ subdirectory with +LongBow unit tests. + +config/ +config/test +- Forwarder configuration, from a file or CLI or web + The default telnet port is 2001. + The default web port is 2002. + +core/ +core/test +- The forwarder (metisForwarder) that bundles the whole thing and the event + dispatcher (metisDispatcher). Also includes various utility classes, such as + MetisMessage that wraps all messages inside the forwarder. + +io/ +io/test/ +- I/O related primatives. These include "listeners" that monitor for specific types + of incoming packets. io/ includes tunnels, ip overlays, and direct L2 encapsulation. + +messenger/ +messenger/test/ +- event messages within the router, such as notificaitons when an interface + comes up or goes down. + +platforms/ +- platform specific functions, such as dealing with interfaces and + direct Ethernet encapsulation. The files in here implement function + prototypes (usually in core/ or io/), and are tested with unit tests of those + prototypes. So, there is no platforms/test/ directory. + +processor/ +processor/test/ +- The message processor. Forwards Interests and objects. + +strategies/ +strategies/test/ +- Forwarding strategies. Each FIB entry indicates the strategy that should + be used to forward an interest among its entries. + +libmetis.a +- The output library + +test/ +- These are system-level tests + |