Документация

Описание функциональных характеристик ПО SDK CITOS
1. Краткое описание ПО
Программное обеспечение является средством разработки (SDK),позволяющим создавать исполняемые наборы команд для специализированных наборовмикросхем (ASIC), используемых при построении телекоммуникационногооборудования и комплексов. Средство разработки содержит исходные коды,позволяющие формировать, дополнять и вносить изменения в функциональныевозможности программного обеспечения телекоммуникационного оборудования и комплексов, построенных на основеспециализированных наборов микросхем (ASIC).
2. Требование к ПК
Для создания новых образов из исходных текстов (включая загрузчик, BSPи приложение) требуется 64-разрядная машина Linux с по меньшей мере 8 ГБ оперативнойпамяти, 50 ГБ дискового пространства и 4-8 ядрами процессора.
3.Требование к персоналу(разработчику)
Разработчику необходимо обладать следующими навыкамии инструментами:
∙ языки программирования C/C++ и система сборкина основе файловMakefile;
∙ языки разметки и программирования HTML/CSS/JS для изменениявеб-интерфейса;
∙ средой разработки Linux и достаточный опыт работы с оболочкой Linux.
4. Функциональные характеристики программного обеспечения
Функциональные возможности средства разработкипозволяют формировать (компилировать) исполняемые наборы команд для начальнойинициализации, загрузки, управления, а также поддержки необходимого наборапротоколов взаимодействия в телекоммуникационных сетях на основе общепринятыхмеждународных отраслевых стандартов.
Программное обеспечение поддерживает следующиепротоколы взаимодействия в телекоммуникационных сетях на основе международныхотраслевых стандартов:
1. Поддержка Port Control:
- Port Speed/Duplex Mode/Flow Ctrl;
- Port Frame Size (Jumbo frames);
- Port State (administrative status);
- Port Status (link monitoring);
- Port Statistics (MIB counters);
- DDMI;
- UDLD.
2. Поддержка QOS:
- Traffic Classes (8 active priorities);
- Port Default Priority;
- User Priority;
- Input priority mapping;
- QoS Control List (QCL Mode);
- Global Storm Control for UC, MC and BC;
- Random Early Discard (RED);
- Port policers;
- Queue policers;
- Global/VCAP (ACL) policers;
- Port egress shaper;
- Queue egress shapers;
- DiffServ (RFC2474) remarking;
- Tag remarking;
- Scheduler mode;
- Management of credit-based shaper;
- IEEE-802.1Qbv (TAS) Time-aware Scheduler;
- IEEE-802.1Qbu & 802.3brFrame Preemption;
- IEEE-802.1Qci ingressgating/policing/checking.
3. Поддержка L2 Switching:
- Auto MAC addr.Learning/Ageing;
- MAC Addresses - Static;
- Virtual LAN;
- Bidirectional VLAN translation;
- Unidirectional VLAN translation (ingress/egress);
- Private VLAN Static;
- Port Isolation Static;
- MAC-based VLAN;
- Protocol-based VLAN;
- IP subnet-based VLAN;
- VLAN Trunking;
- iPVLAN Trunking;
- GARP VLAN registration GVRP;
- Multiple Registration Protocol MRP;
- Multiple VLAN Registration Protocol MVRP;
- IEEE-802.1ad Provider Bridge(Native or Translated VLAN);
- MSTP;
- Rapid Spanning Tree RSTP, STP;
- Loop Guard;
- Link Aggregation Static;
- Link Aggregation LACP;
- AGGR/LACP user interfacealignment with Industrystandard;
- UNI LAG (LACP) 1:1 Active/Standby;
- LACP Revertive/Non-revertive;
- LACP loop free operation;
- BPDU Guard & Restricted Role;
- IGMPv2 snooping;
- IGMPv3 snooping;
- MLDv1 snooping;
- MLDv2 snooping;
- IGMP filtering profile;
- IPMC throttling, filtering, leave proxy;
- MVR;
- MVR profile;
- Voice VLAN;
- DHCP snooping;
- ARP inspection;
- Port Mirroring;
- Flow mirroring;
- Rmirror;
- DHCPv6 Shield.
4 Поддержка Protection:
- G.8032 - Ringprotection;
- G.8032 - Ring protection v2;
- MRP (Media redundancy protocol);
- MRP (Mediaredundancy protocol) Interconnect;
- IEEE-802.1CB (FRER);
5 Поддержка L3 &Routing:
- DHCP option 82 relay;
- UPNP;
- HW based IPv4 L3 Static Routingwith Linux Kernelintegration;
- RFC2992 (ECMP)support for HW based L3 static routing;
- RFC 2453 RIPv2 dynamic routing;
- RFC 2328 OSPFv2 Dynamic routing;
- RFC 3101 The OSPF Not-So-Stubby Area (NSSA) Option;
- RFC 3137 OSPF Stub Router Advertisement;
- HW based IPv6 L3 Static Routing;
- RFC 2740/5340 OSPFv3 DynamicRouting;
- RFC-1812 L3 checking (version,IHL, checksum, è ò.ä.).
6 Поддержка Security:
- Port-Based 802.1X;
- Single 802.1X;
- Multiple 802.1X;
- MAC-Based Authentication;
- VLAN Assignment;
- QoS Assignment;
- Guest VLAN;
- RADIUS Authentication and Authorization;
- RADIUS Accounting;
- MAC Address Limit;
- Persistent MAClearning;
- IP MAC binding;
- IP/MAC bindingdynamic to static;
- TACACS+ Authentication and Authorization;
- TACACS+ Command Authorization;
- TACACS+ Accounting;
- Web & CLI Authentication;
- Authorization (15 user levels);
- ACLs for filtering/policing/port copy;
- IP source guard;
- Secure FTP Client;
- IP6 Source guard.
7 Поддержка OAM & Test:
- CFM: Continuity Check (ETH-CCM);
- CFM: IS-, OS-, PS-, SID-TLV;
- CFM: APS using ETH-CCMand ETH-APS;
- CFM: ERPS using ETH-CCMand ETH-RAPS;
- CMF: HW-accelerated OAM.
8 Поддержка Management:
- JSON-RPC;
- JSON-RPC Notifications;
- RFC 2131 DHCP Client;
- RFC 2131 DHCP Server;
- DHCP Serversupport for DHCP relay packets;
- DHCP per port;
- RFC 3315 DHCPv6 Client;
- RFC 3315 DHCPv6 Relay Agent;
- RFC 7610 DHCPv6-ShieldProtecting againstRogue DHCPv6 Servers;
- RFC 1035 DNS client,relay;
- IPv4/IPv6 Ping;
- IPv4/IPv6 Traceroute;
- HTTP Server;
- CLI - Console Port;
- CLI - Telnet;
- Port Description CLI;
- Management accessfiltering;
- HTTPS;
- SSHv2;
- IPv6 Management;
- IPv6 Ready Logo PHASE2 (host only);
- RFC4884 (ICMPv6);
- System Syslog;
- Software Uploadvia web;
- SNMPv1 / v2c / v3 Agent - Note:No SNMPv1 trap support;
- RMON (Group 1, 2, 3 & 9);
- RMON alarm andevent(CLI,web);
- IEEE 802.1AB-2005 Link Layer DiscoveryLLDP;
- TIA 1057 LLDP-MED;
- sFlow;
- FTP Client;
- Configuration Download/Upload - Industrial Standard;
- Loop detectionrestore to default.
9 Поддержка Standard MIBs:
- RFC 2674 VLAN MIB;
- IEEE 802.1Q Bridge MIB 2008;
- RFC 2819 RMON (Group 1,2. 3 & 9);
- RFC 1213 MIB II;
- RFC 1215 TRAPS MIB;
- RFC 4188 Bridge MIB;
- RFC 4292 IP Forwarding Table MIB;
- RFC 4293 Management Information Base for the Internet Protocol(IP);
- RFC 5519 Multicast Group Membership DiscoveryMIB;
- RFC 4668 RADIUS auth. Client MIB;
- RFC 4670 RADIUS Accounting MIB;
- RFC 3635 Ethernet-like MIB;
- RFC 2863 Interface Group MIB using SMI v2;
- RFC 3636 802.3 MAU MIB;
- RFC 4133 Entity MIB version 3;
- RFC 4878 Link OAM MIB;
- RFC 3411 SNMP Management Frameworks;
- RFC 3414 User-based SecurityModel for SNMPv3;
- RFC 3415 View-based accessControl Model for SNMP;
- RFC 2613 SMON - PortCopy;
- IEEE 802.1 MSTP MIB;
- IEEE 802.1ABLLDP-MIB (LLDP MIB included in a clauseof the STD);
- IEEE 802.3ad(LACP MIB includedin a clause of the STD);
- IEEE 802.1X(PAE MIB includedin a clause of the STD);
- TIA 1057 LLDP-MED ( MIB is part of theSTD).
10. Поддержка Synchronization:
- SyncE with SSM;
- SyncE Nomination For 2 Interfaces;
- 1588v2 PTP with two step clock;
- 1588v2 PTP with one stepclock;
- Peer-to-peer transparent clock over Ethernet/IPv4;
- End-to-end transparent clock over Ethernet/IPv4;
- End-to-end transparent clock over Ethernet/IPv6;
- Boundary Clock;
- Redundant mastersand multiple timingdomains;
- PTP over IPv4;
- Unicast/Multicast;
- TC internal Master/Slave w. PDV filtering and no modulation or latency feedbackfrom modems;
- TC internal Master/Slave w. reduced PDV filtering and modem providesfeedback on modulation orlatency;
- Combined SyncE & 1588;
- MSCC TimingBU servo algorithm integration;
- MSCC TimingBU DPLL API integration;
- G.8265.1 BMCA;
- ITU G.8263 filtering;
- PTP Profile;
- Clock Quality;
- G.781 compliantclock selection algorithmfor the platformas a PTP slave;
- G.8275.1 BMCA;
- G.8275 Compliant Filter;
- PTP Time Interface;
- NTPv4 Client;
- IEEE802.1AS-2011/IEEE802.1AS rev D4.2.
1. Введение
Руководство состоит из двух частей.
Часть 1 - содержит инструкции по установке, настройке SDK CITOS, а также базовый набор действийпо сборке двоичного образа под целевую платформу.
Часть 2 - содержит описание функциональных характеристик SDK CITOS, решение задач конфигурирования под целевую платформу, требованияк ресурсам.
2. Назначение и условия применения программы
В документе представлено введение в средство разработки (SDK) с точки зрения разработ-чика программного обеспечения (ПО).
Документ включает общее описание архитектуры, параметры интеграции, среду разработ-ки, настройку и сборку ПО.
Начиная с данной версии 1.0.0, стек ПОработает в составе операционной системы Linux. Разработчику необходимо обладатьследующими навыками и инструментами:
- Языки программирования C/C++ и системасборки на основе файлов Makefile.Языки разметки и программирования HTML/CSS/JS для изменения веб-интерфейса.
- Средой разработки Linux и достаточный опыт работы соболочкой Linux.
- Для создания новых образов изисходных текстов (включая загрузчик, BSP и приложение) требуется 64-разрядная машина Linux с по меньшей мере 8 ГБ оперативной памяти, 50 ГБ дисковогопространства и 4-8 ядрами процессора. В этом документе в качестве станцииразработки используется Ubuntu 18.04 LTS (ОС).
- Необходим доступ к серверу TFTP или HTTP, который можно использовать для обнов- ления ПО.
- Терминал RS232 для доступа к целевому оборудованию построенного на основе специ- ализированного набора микросхем (ASIC) (необходим для отладки без подключения по локальной вычислительной сети ЛВС).
Дополнительное ПО разработки.
Кроме операционной системы (ОС) в станцию разработки должно быть установлено следу-ющее дополнительное программное обеспечение:
- bc - консольный калькулятор;
- build-essential - набор компиляторов;
- bzip2 - архиватор ZIP;
- coreutils - набор утилит ядра;
- cpio - архиватор CPIO;
- findutils - набор утилит для поиска;
- gawk - потоковый редактор;
- git - система контроляверсий;
- grep - утилита поиска внутри файлов;
- gzip - архиватор ZIP;
- libc6-i386- библиотека обработки системых вызовов;
- libcrypt-openssl-rsa-perl - библиотека шифрования для системы perl;
- libncurses5-dev - библиотека консольной графики;
- patch - утилита наложения изменений;
- perl - интеропретатор языка PERL;
- python - интеропретатор языка Python;
- ruby - интеропретатор языка Ruby;
- sed - потоковыйредактор Sed;
- squashfs-tools - утилиты настройки файловой системы Squashfs;
- tcl - интеропретатор языка Tcl;
- tar -архиватор TAR;
- wget -утилита загрузки файлов;
- libyaml-tiny-perl - библиотека поддержки файлолв конфигурации YAML для интерпрета- тора Perl;
- libcgi-fast-perl - библиотека поддержки CGI для интерпретатора Perl;
- ruby-parslet - библиотека парсинга файлов конфигурации Ruby;
- libstdc++6 - стандартная библиотека языка C++.
Установить приведенный набор утилит ибиблиотек возможно с помощью следующейкоманды (для систем на базе Debian):
Первоначальный загрузчик предоставляет собой часть BSP, которое запускается на целевойплатформе при подачепитания. Загрузчик отвечает за настройку процессора,контроллера па- мяти, загрузкуядра Linux в память. Загрузчик основан на базовой версии свободного программ-ного обеспечения Das Ubootс внесеннымиплатформозависимыми изменениями. Несмотря на то, что загрузчик являетсяуниверсальным для множествацелевых платформ, в некоторыхслучаях может потребоваться его изменение.Эти изменениядолжны быть сделаны в исходныхтекстах модулей Uboot искомпилированы соответствующим кросс-компилятором.
$sudo apt-get install bc build-essential bzip2 coreutils cpio findutils gawk gitgrep gzip libc6-i386 libcrypt-openssl-rsa-perl libncurses5-dev patch perlpython ruby sed squashfs-tools tcl tar wget libyaml- tiny-perl libcgi-fast-perlruby-parslet libstdc++6
3. Характеристики программы
SDK состоит из различных компонентов. Все компоненты необходимы для создания рабо- тающего образавстраиваемого программного обеспечениядля оборудованияна основеспеци- ализированного набора микросхем. В этом разделе будет дан обзорразличных компонентов и объяснено, какую роль они выполняют. Разработчику может потребоваться изменить один или несколькокомпонентов для поддержки нового функционала и настройки различных моделейинтеграции.
3.1 Модули загрузки BSP
Пакет BSP содержитисходные коды программ для первоначальной загрузки системы. Так- же включаетв себя утилиты и инструменты необходимые для создания исполняемого кода и компоненты необходимые для целевой установки наконечное оборудование. В состав набора инструментов входят:
- кросс-компиляторы - gcc, g++;
- система сценариев сборки - cmake, automake;
SDK содержит несколько вариантов BSP,оптимизированных для платформ,собранных на раз- личных специализированных наборах микросхем (ASIC). BSPтребует изменения или дополне- ния при отличии аппаратной части целевой платформы от референсного дизайна. В случаеотсутствия изменений могут быть использованы бинарные сборки BSP непосредственно от ре-ференсного дизайна. Следует иметь ввиду, что сборка BSP из исходных кодов можетзанимать значительное время, поэтомурекомендуется с осторожностью относиться к необходимости из- менения аппаратнойчасти целевой платформы.
3.2 Библиотека API
API - набор программных файлов необходимых для предоставления взаимодействия про-граммного обеспечения прикладного уровня с ядром (BSP) основной системы.
3.3 Уровень пользовательских приложений
Уровеньпользовательских приложений включает в себя набор компонентов пользователь-ского уровня, необходимых для функционирования целевой платформы в требуемом сетевомокружении.
3.4 Первоначальный загрузчик
Первоначальный загрузчик предоставляет собой часть BSP, которое запускается на целевойплатформе при подачепитания. Загрузчик отвечает за настройку процессора,контроллера па- мяти, загрузкуядра Linux в память. Загрузчик основан на базовой версии свободного программ-ного обеспечения Das Ubootс внесеннымиплатформозависимыми изменениями. Несмотря на то, что загрузчик являетсяуниверсальным для множествацелевых платформ, в некоторыхслучаях может потребоваться его изменение.Эти изменениядолжны быть сделаны в исходныхтекстах модулей Uboot искомпилированы соответствующим кросс-компилятором.
4. Установка SDK CITOS на станцию сборки
В данном разделеописывается процесс развертывания SDK CITOS на станции сборки, вне- сениеизменений в исходные коды и сборка (компиляция) под целевую платформу.
4.1 Установка компилятора и бинарных компонентов BSP
Для установки предсобранных бинарных образов и исходных кодов BSP референсных плат- форм необходимораспаковать архив в каталог /opt на станциисборки:
$ cd /opt
$ mkdir -p opt/mscc
$ cd /opt/mscc
$ cp /media/CITOS-BSP_1.0..tar.bz2 /opt/mscc/
$ tar -xvjf CITOS-BSP_1.0..tar.bz2
4.2 Установка исходных кодов ПО прикладного уровня
Для установки исходных кодов ПО прикладного уровня на станцию сборки, распакуйтеархив в каталог/home/user . Здесь и далее по тексту текущий пользователь системы обозначенкак user .
$ cd /home/user
$ mkdir -p /home/user/citos
$ cp /media/CITOS-APP_1.0.tar.bz2 /home/user/citos/
$ cd /home/user/citos/
$ tar -xvjf CITOS-APP_1.0.tar.bz2
4.3 Внесение изменений в исходные коды прикладного уровня
Для вненесения изменений перейдите в каталог с установленным ПО:
$cd /home/user/citos/CITOS-APP_1.0/src
Выберите компонент и внесите необходимыеизменения пользуясь редактором исходных текстов.
4.4 Настройка и сборка ПО
SDK содержит подготовленные конфигурационные файлы описания референсных платформ с расширением *.mk, которыенаходятся в каталогеconfigs.
Таблица 1 — Сценарии сборки

Таблица 2 — Наименования образов для загрузки

Для настройки системы сборки под требуемую платформу выполните следующие шаги:
1. Перейдите в каталогПОsrc/build :
$ cd src/build
2. Выполните очистку отартефактов предыдущих сборок:
$ make mrproper
3. Установите требуемый сценарий (см. таблицу 1). Например, для оборудования RFE_VAR1необходимо выполнить следующую команду:
$tools/set_build_config.rb -c configs/Reference_equipment_var1.mk
Запуститесборку выполнив командуmake:
$ makeСобранный образ, для выбранной платформы (см. табл. 2) будет находится в каталоге:
obj/Reference_equipment_var1.mfi
Данный образ готов для загрузки в платформу
2. Функциональные характеристики
В данном разделе перечисляются поддерживаемые программным обеспечением протоколывзаимодействия в телекоммуникационных сетях, а также поддерживаемый список команд винтерфейсе оператора конечного оборудования.
2.1 Поддерживаемые протоколы
Программное обеспечение поддерживает следующие протоколы взаимодействия в телекоммуникационных сетях на основе международных отраслевых стандартов:
- Port Speed/Duplex Mode/Flow Ctrl
- Port Frame Size (Jumbo frames)
- Port State (administrative status)
- Port Status (link monitoring)
- Port Statistics (MIB counters)
- DDMI
- UDLD
2.1.2 Поддержка QOS
- Traffic Classes (8 active priorities)
- Port Default Priority
- User Priority
- Input priority mapping
- QoS Control List (QCL Mode)
- Global Storm Control for UC, MC and BC
- Random Early Discard (RED)
- Port policers
- Queue policers
- Global/VCAP (ACL) policers
- Port egress shaper
- Queue egress shapers
- DiffServ (RFC2474) remarking
- Tag remarking
- Scheduler mode
- Management of credit-based shaper
- IEEE-802.1Qbv (TAS) Time-aware Scheduler
- IEEE-802.1Qbu & 802.3br Frame Preemption
- IEEE-802.1Qci ingress gating/policing/checking
2.1.3 Поддержка L2 Switching
- Auto MAC addr. Learning/Ageing
- MAC Addresses - Static
- Virtual LAN
- Bidirectional VLAN translation
- Unidirectional VLAN translation (ingress/egress)
- Private VLAN Static
- Port Isolation Static
- MAC-based VLAN
- Protocol-based VLAN
- IP subnet-based VLAN
- VLAN Trunking
- iPVLAN Trunking
- GARP VLAN registration GVRP
- Multiple Registration Protocol MRP
- Multiple VLAN Registration Protocol MVRP
- IEEE-802.1ad Provider Bridge (Native or Translated VLAN)
- MSTP
- Rapid Spanning Tree RSTP, STP
- Loop Guard
- Link Aggregation Static
- Link Aggregation LACP
- AGGR/LACP user interface alignment with Industry standard
- UNI LAG (LACP) 1:1 Active/Standby
- LACP Revertive/Non-revertive
- LACP loop free operation
- BPDU Guard & Restricted Role
- IGMPv2 snooping
- IGMPv3 snooping
- MLDv1 snooping
- MLDv2 snooping
- IGMP filtering profile
- IPMC throttling, filtering, leave proxy
- MVR
- MVR profile
- Voice VLAN
- DHCP snooping
- ARP inspection
- Port Mirroring
- Flow mirroring
- Rmirror
- DHCPv6 Shield
2.1.4 Поддержка Protection
- G.8032 - Ring protection∙ G.8032 - Ring protection v2
- MRP (Media redundancy protocol)
- MRP (Media redundancy protocol) Interconnect
- IEEE-802.1CB (FRER)
2.1.5 Поддержка L3 & Routing
- DHCP option 82 relay
- UPNP
- HW based IPv4 L3 Static Routing with Linux Kernel integration
- RFC2992 (ECMP) support for HW based L3 static routing
- RFC 2453 RIPv2 dynamic routing
- RFC 2328 OSPFv2 Dynamic routing
- RFC 3101 The OSPF Not-So-Stubby Area (NSSA) Option
- RFC 3137 OSPF Stub Router Advertisement
- HW based IPv6 L3 Static Routing
- RFC 2740/5340 OSPFv3 Dynamic Routing
- RFC-1812 L3 checking (version, IHL, checksum, и т.д.)
2.1.6 Поддержка Security
- Port-Based 802.1X
- Single 802.1X
- Multiple 802.1X
- MAC-Based Authentication
- VLAN Assignment
- QoS Assignment
- Guest VLAN
- RADIUS Authentication and Authorization
- RADIUS Accounting
- MAC Address Limit
- Persistent MAC learning
- IP MAC binding
- IP/MAC binding dynamic to static
- TACACS+ Authentication and Authorization
- TACACS+ Command Authorization
- TACACS+ Accounting
- Web & CLI Authentication
- Authorization (15 user levels)
- ACLs for filtering/policing/port copy
- IP source guard
- Secure FTP Client
- IP6 Source guard
2.1.7 Поддержка OAM & Test
- CFM: Continuity Check (ETH-CCM)
- CFM: IS-, OS-, PS-, SID-TLV
- CFM: APS using ETH-CCM and ETH-APS
- CFM: ERPS using ETH-CCM and ETH-RAPS
- CMF: HW-accelerated OAM
Полный текст можно скачать по ссылке ниже.