.. _ref-components: .. _LibFluid: http://opennetworkingfoundation.github.io/libfluid/ Компоненты RUNOS ================ Базовые ------- * Common.hh Подключает: * Библиотеку логгирования `GLOG `_ * `QtCore `_ * `LibFluidMsg `_ * Flow.hh Представление потока. * SwitchConnection.hh Представление соединения с коммутатором. * Decision.hh Решения для :ref:`ref-packetmisshandler`. * Controller.hh :ref:`ref-controller-overview`. * Application.hh Базовый тип для приложений. * Config.hh Инструмент для работы с конфигурационном файлом. * FluidOXMAdapter.hh Связующее звено между RUNOS::OXM и `LibFluid` * Loader.hh Загрузчик приложений : :ref:`ref-loader`. * PacketParser.hh Разбор пакетов протоколов семейтсва TCP/IP. Приложения ---------- * ArpHandler.hh :ref:`ref-arphandler-overview`. * FlowManager.hh :ref:`ref-flowmanager-overview`. * HostManager.hh :ref:`ref-hostmanager-overview`. * LearningSwitch.hh :ref:`ref-learningswitch-overview`. * LinkDiscovery.hh :ref:`ref-linkdiscovery-overview`. * RestListener.hh :ref:`ref-restlistener-overview`. * SimpleLearningSwitch.hh :ref:`ref-learningswitch-overview`. * StaticFlowPusher.hh :ref:`ref-staticflowpusher-overview`. * Stats.hh :ref:`ref-switchstats-overview`. * STP.hh :ref:`ref-stp-overview`. * Switch.hh Представление коммутатора и :ref:`ref-switchmanager-overview`. * Topology.hh :ref:`ref-topology-overview`. * WebUIManager.hh :ref:`ref-webuimanager-overview`. .. _ref-restMultipart-class: * RestMultipart.hh :ref:`ref-restMultipart-overview`. That module allows REST users to get switch statistics that can be delivered by MultipleRequest messages. Modify actions are implemented in :ref:`RestFlowMod` and :ref:`StaticFlowPusher` modules. Handling of each GET consists of the following steps: * switching in handleGET method * calling ``sendGetRequest(corresponding type, )`` and turning in event loop * waiting for the response from a switch and it's handling * handler (``onResponse``) updated variable that corresponds to the reply type(of13::MultipartReplyFlow replyFlow, for example) * handler wakes up ``handleGET`` method * responding to the user .. _ref-restFlowMod-class: * RestFlowMod.hh :ref:`ref-restFlowMod-overview`. REST interface for flow enties construction and deletion of existing ones. Allows to add new flow entries to a switch (to any already existing table excluding Maple's one): You can use table numbers in range of [0, ctrl->handler_table() - 1]. POST request: :: POST /api/rest-flowmod/flow/ body of the request: JSON description of a new flow Imlemantation logic is the same as in RestMultipart. If you want to add new handler, you need to go trouth the following steps: * add new path to be handeled: `init`: `acceptPath(Method::POST, "flowentry");` * implement your logic in a "case" of handlePOST (GET, DELETE, etc) .. _ref-restStringProcessing-class: * RestStringProcessing.hh В данном модуле содержатся функции и макросы, призванные автоматизировать рутинные действия при работе с json11::Json и строками. Используется в :ref:`ref-restMultipart-class` и :ref:`ref-restFlowMod-class`. Инструменты ----------- * AppObect.hh Базовый класс для объектов event-модели * Event.hh event-модель * ILinkDiscovery.hh Интерфейс приложения :ref:`ref-linkdiscovery-overview`. * json11.hpp `Json библиотека `_. * LLDP.hh описание LLDP заголовка пакета. * OFMsgUnion.hh OpenFlow сообщения. * ORTransaction.hh Канал для общения с коммутаторами. * Rest.hh Базовый класс для приложений, поддерживающих REST Библиотеки ---------- api ~~~ Интерфейс для некоторых компонентов RUNOS * api/Packet.hh Интерфейс для чтения и изменения полей пакета протоколоа семейтсва TCP/IP. * api/PacketMissHandler.hh Интерфейс для функций обработчик в :ref:`ref-packetmisshandler`. * api/SerializablePacket.hh Интерфейс для сериализации пакетов протоколов семейства TCP/IP. * api/TraceablePacket.hh Интерфейс для Packet, работающим с runos::maple maple ~~~~~ Реализация ядра maple. * maple/Backend.hh Интерфейс для maple, для работы с сетью * maple/Flow.hh Представление потока для maple * maple/Tracer.hh Трассировка PacketMissHandler'ов * maple/TraceTree.hh Релазиация TraceTree * maple/TraceablePacketImpl.hh Реализация Packet, работающим с maple * maple/LoggableTracer.hh Tracer с логированием. * maple/Runtime.hh Интерфейс maple. openflow ~~~~~~~~ * openflow/common.hh база openflow * openflow/openflow-1.0.h OpenFlow1 definitions * openflow/openflow-1.3.5.h OpenFlow1.3 definitions * openflow/openflow-1.5.1.h OpenFlow1.5 definitons. oxm ~~~ Библиотека реализующая oxm поля OpenFlow. * oxm/bit_traits.hh Размеры типов в битах. * oxm/errors.hh Возможные exceptions. * oxm/field.hh filed, value and mask * oxm/field_set.hh Наборы полей. * oxm/openflow_basic.hh Основные поля TCP/IP. types ~~~~~ * types/ethaddr.hh обретка для ethernet адреса * types/IPv6Addr.hh обертка для IPv6 адреса * types/exception.hh Базовый тип для exception