Opened 44 hours ago

Last modified 16 hours ago

#734 new задача

Добавить поддержку плат ST-124M, ST-116M, ST-018M

Reported by: ledol Owned by: alx
Priority: высокий Milestone: 1 очередь
Component: sw Keywords:
Cc:

Description

Прошу провести работу по добавлению плат ST-124M, ST-116M, ST-018M в состав блока MC04-DSL3U.

Attachments (3)

MiB_ST-124M.txt (50.5 KB ) - added by ledol 44 hours ago.
MiB_ST-124M_V2.txt (50.7 KB ) - added by ledol 42 hours ago.
MiB_ST-124M_V3.txt (50.8 KB ) - added by ledol 22 hours ago.

Download all attachments as: .zip

Change History (13)

by ledol, 44 hours ago

Attachment: MiB_ST-124M.txt added

in reply to:  description comment:1 by alx, 44 hours ago

Replying to ledol:

Прошу провести работу по добавлению плат ST-124M, ST-116M, ST-018M в состав блока MC04-DSL3U.

Просьба не совсем понятна... Что именно подразумевается под "включением в состав"?

comment:2 by alx, 44 hours ago

А, кажется об этом написано в приложенном тексте... :)

by ledol, 42 hours ago

Attachment: MiB_ST-124M_V2.txt added

comment:3 by alx, 38 hours ago

комментарий на текст, написанный в приаттаченном файле MiB_ST-124M.txt

В ПЛИС данных плат реализован увеличенный буфер пакетов мониторинга, что позволяет сгруппировать параметры конфигурации в одну переменную и данные статистики\статуса в другую (6 и 7).
Если тебе, по каким-то причинам, такой подход неудобен, будем переменные фрагментировать по функциям. Сообщи свое мнение.

Я думаю, что стоит попробовать реализовать поддержку увеличенных буферов - это не должно быть сильно сложно, и это может позже пригодиться для каких-то других плат. К сожалению, ты не написал (или я не увидел), до какого значения увеличен максимальный размер пакета. Сообщи, пожалуйста.

И еще я думаю, что имеет смысл сделать так, чтобы плата сама сообщала SW-01, какой максимальный размер пакета она поддерживает - на случай если позже захочется/потребуется это значение изменить. Это можно сделать, например, чтением какой-то переменной.

  1. Конфигурацию платы (переменная 6) сосредоточить в одной вкладке. Пронумеровать блоки и подблоки конфигурации. Группы настроек выделить рамкой.

Там так много всего конфигурируется, я не уверен, что это все поместится на одну вкладку... Можно, конечно, сделать блок с полосой прокрутки, но мне кажется, что прокручивать менее удобно, чем переключать вкладки. Посмотрю по ходу дела, что будет получаться, потом решим окончательно...

Сопроводить значения параметров и статистики данными настроек платы.

? Эту фразу я не понял. Поясни, пожалуйста, что имеется в виду.

1- Общие(Глобальные) параметры платы (визуализировать осн. настройки)

Глобальные настройки платы уже предлагалось отобразить в пункте 1 (на вкладке с настройками). Верно ли я понял, что предлагается отобразить их на вкладке с состоянием и статистикой второй раз?

Верно ли я понял, что на вкладке состояния предлагается повторно визуализировать не все глобальные настройки, а только некоторые из них (основные)? Если да, то какие именно из глодальных настроек являются основными, а какие - второстепенными?

  1. Новые функции\ расширенные старые функции.

...

Раньше был только APS1(PP).

Не очень понимаю, что значит "старые" и "раньше", ведь в блоке 3U поддержки этих плат еще не было...

В описательной части можно раскрыть абревиатуры (если считаешь нужным):
APS2(SNCP-SNC\I) - решение принимается блоком TU-DXC, перед упаковкой\после распаковки TU-3 структуры.
APS1(PP-SNC\P) - решение принимается блоком MAP, непосредственно инкапсулирующим\декапсулирующим контейнер VC-12.

Не совсем понятно, что подразумевается под "описательной частью". Если Руководство по эксплуатации - то это не ко мне, разработчик РЭ - Vladimir, эту информацию лучше направить ему в проекте mc-04 (компонент "Руководство по эксплуатации").

4-х битовые поля QL (0000-1111) являются общепринятым методом детерминирования качества источника по G.781 (базовый стандарт-описание синхронизации STM), по общению с эксплуатацией эти константы - наиболее понятный вариант описания, предлагаю их использовать.

Здесь тоже не очень понятно - предлагается задавать и отображать значения приоритетов в двоичной форме?

_=== B (102 байта)===_

119-221 -- -- --

Но в указанном диапазоне (119...221) не 102, а 103 байта! Наверное здесь ошибка...

_=== Настройка TU (Tributary Unit 1-63) 63*2 bytes =========================================


222-348

Но в казанном диапазоне (222...348) не 126 (63 * 2), а 127 байт! Наверное здесь тоже ошибка...

18-33 - J2_RX_Exp 15 байт ASCII

Но в указанном диапазоне (18...33) не 15, а 16 байт! Верно ли я понимаю, что в последнем байте должен быть всегда 0? Нет ли здесь ошибки?

1217 - Прием полей J2\... из контейнера*: 0-62 0

  • Настройка параметров Eth VCG0-3 :
  • 24 байта = 4*6 байт

_=== Настройка режимов и параметров синхронизации =================================

1241 0 Полоса пропускания PLL 1Hz(узкая)\9Hz(широкая) 0\1 1

24 байта здесь никак не поместятся, так как диапазон 1218...1240 содержит только 23 байта! Очевидно, здесь ошибка...

1255 Bandwith control4 [7..4]-port-7 [3..0]-port6 0-no (1-128k 2-256k 3-512k 4-1M 5-2 6-4M 7-8M)
1255-1258 Port0..3 config

Здесь байт 1255 определено дважды - визимо, здесь ошибка...

-- 1269-1333 байты (64=16*4)

Но в указанном диапазоне не 64, а 65 байт! Нет ли здесь ошибки?

_=== Состояние и статистика оптических портов STM A\B (2*84 bytes)===
_=== A ===
29 0 Вкл.\Выкл. направление A вкл.\выкл. 0\1 0

...

114 N1_Rx - -
_=== B ===
115-199 Состояние и статистика оптического порта B

Но в диапазоне 29...114 не 84, а 86 байт, а в диапазоне 115...199 не 84 и не 86, а 85 байт! Очевидно, где-то здесь ошибка...

_=== Сост. контейнеров каналов Eth (6*63=378) ===
_== 0 ==
256 0 Задействован в VCG 1\0 0
262-265 REI_Count - -
======
633-647 Поле J2 выбранного контейнера - -

Но в диапазоне 256...265 не 6, а 10 байт! Очевидно, здесь какая-то ошибка...
И в диапазоне 256...632 не 378 (6*63) и не 630 (10*63), а 377 байт! Кажется здесь тоже ошибка...

_=== Сост. потоков\контейнеров Е1 (28*24 = 672) ===
651 0 Блокирован\Разблокирован 1\0 0

...

679 7 TU12_AIS 0\1 0

...

1322 Port[7..0]Link 0-no Link 1-Link 0\1 0

Но в диапазоне 651...679 не 28, а 29 байт! По-моему здесь какая-то ошибка...
И в диапазоне 651...1321 не 696 (29*24) и даже не 672 (28*24), а всего 671 байт! Здесь какая-то ошибка...

(REG[15..0] = 1325[7..0]1324[7..0] is valid when detect range is within ±30ppm and 1322[2..1] = 00)

В описании байта 1322 сказано, что 0 означает нет линка, а 1 - есть линк. Верно ли здесь написано, что измеритель T0 валиден, если в портах ethernet 1 и 2 нет линка? Нет ли здесь ошибки? Может быть должно быть наоборот - валиден если 1322[2..1] не равны 00?

И еще непонятно, что подразумевается под "1325[7..0]1324[7..0]". Согласон описанию, байты 1324 и 1325 - это битовые поля, вряд ли интерпретация этих байтов как числа имеет смысл...

Вероятно, позже будут еще вопросы, это пока то, что заметил при первом чтении...

И еще у меня просьба - если можно, пиши, пожалуйста, непосредственно в комментариях, а не в приложенных файлах. Очень неудобно и долго отвечать на что-то, что я могу видеть только в другом окне, а каждую цитату оформлять вручную (и еще номер из каждой строки удалять)... И, скорее всего, поиск в прикрепленных файлах ничего находить не будет...

Last edited 38 hours ago by alx (previous) (diff)

comment:4 by alx, 38 hours ago

О, еще забыл один момент.

	0       COMMAND                 = 0 - нет активных команд               0
	                                = 1 - старт реконфигурации платы
	                                = 2 - опрос модулей SFP
...
	В этих платах реализован механизм "мягкого" перезапуска, в переменной 6 предусмотрены настройки признаков обновления
	переменной и полного рестарта конфигурации, поэтому предлагаю "1 - старт реконфигурации платы" сделать режимом полного
	аппаратного перезапуска платы и визуализировать в виде отдельной кнопки.

Не возражаю. Чем меньше дейcтвий требуется для конфигурирования платы - тем лучше.

В этой связи я хотел бы спросить про команду 2 - зачем она нужна? В смысле, для чего надо перед каждым чтением модулей SFP непременно записывать команду 2 (это я по аналогии с платой GE-12 например)? Если я правильно понимаю, что это работает примерно как команда "опрос" в SM-01 (то есть без команды данные, читаемые из переменной .8.0, не будут обновляться), то это создает большие неудобства при мониторинге - кроме собственно мониторинга придется еще делать периодическую запись команды 2, то есть нужны дополнительные "костыли" в системе мониторинга (или рядом с ней)... Нельзя ли убрать и команду 2 и читать модули при каждом запросе?

Last edited 38 hours ago by alx (previous) (diff)

comment:5 by ledol, 23 hours ago

комментарий на текст, написанный в приаттаченном файле MiB_ST-124M.txt

В ПЛИС данных плат реализован увеличенный буфер пакетов мониторинга, что позволяет сгруппировать параметры конфигурации в одну переменную и данные статистики\статуса в другую (6 и 7).
Если тебе, по каким-то причинам, такой подход неудобен, будем переменные фрагментировать по функциям. Сообщи свое мнение.

Я думаю, что стоит попробовать реализовать поддержку увеличенных буферов - это не должно быть сильно сложно, и это может позже пригодиться для каких-то других плат. К сожалению, ты не написал (или я не увидел), до какого значения увеличен максимальный размер пакета. Сообщи, пожалуйста.

Ответ:
В данный момент Толя задал объем буфера приема и передачи 2048 байт. С учетом ESQ-кодировки можно принимать\передавать пакеты размером до 1900. Больше ничего сказать не могу, ПЛИС пока тестировал
только в рамках предыдущих плат (ST-124).

Сопроводить значения параметров и статистики данными настроек платы.

? Эту фразу я не понял. Поясни, пожалуйста, что имеется в виду.

Ответ:
Имеется в виду следующее. Есть вкладка "статистика", на ней отображаются параметры,
структурно-связанные с конфигурационными данными, заданными во вкладке "конфигурация".
Разумно совместить отображение в одну область.
Пример: поля J2_Tx, J2_Exp, J2_Rx используются для идентификации потока\контейнера.
При этом J2_Tx и J2_Exp(Ожидаемое) задаются в "конфигурации", а J2_Rx отображается в
"статистике". Разумно совместить поля во вкладке "статистика" для понимания что ты задал,
чего ты ожидаешь, что ты получил...
_
Раньше был только APS1(PP).

Не очень понимаю, что значит "старые" и "раньше", ведь в блоке 3U поддержки этих плат еще не было...

Ответ:
Имеются ввиду переменные и функционал плат ST-124, ST-116, St-018.

/ В описательной части можно раскрыть абревиатуры (если считаешь нужным):
APS2(SNCP-SNC\I) - решение принимается блоком TU-DXC, перед упаковкой\после распаковки TU-3 структуры.
APS1(PP-SNC\P) - решение принимается блоком MAP, непосредственно инкапсулирующим\декапсулирующим контейнер VC-12.

Не совсем понятно, что подразумевается под "описательной частью". Если Руководство по эксплуатации - то это не ко мне, разработчик РЭ - Vladimir, эту информацию лучше направить ему в проекте ​mc-04 (компонент "Руководство по эксплуатации").

Ответ: Всплывающие подсказки, сноски. Если у нас будет вкладка с прокруткой, почему не добавить в конец небольшой глоссарий?

comment:6 by ledol, 22 hours ago

_=== B (102 байта)===_

119-221 -- -- --

Но в указанном диапазоне (119...221) не 102, а 103 байта! Наверное здесь ошибка...

_=== Настройка TU (Tributary Unit 1-63) 63*2 bytes =========================================

222-348

Но в казанном диапазоне (222...348) не 126 (63 * 2), а 127 байт! Наверное здесь тоже ошибка...

18-33 - J2_RX_Exp 15 байт ASCII

Но в указанном диапазоне (18...33) не 15, а 16 байт! Верно ли я понимаю, что в последнем байте должен быть всегда 0? Нет ли здесь ошибки?

1217 - Прием полей J2\... из контейнера*: 0-62 0

Настройка параметров Eth VCG0-3 :
24 байта = 4*6 байт
_=== Настройка режимов и параметров синхронизации =================================

1241 0 Полоса пропускания PLL 1Hz(узкая)\9Hz(широкая) 0\1 1

24 байта здесь никак не поместятся, так как диапазон 1218...1240 содержит только 23 байта! Очевидно, здесь ошибка...

1255 Bandwith control4 [7..4]-port-7 [3..0]-port6 0-no (1-128k 2-256k 3-512k 4-1M 5-2 6-4M 7-8M)
1255-1258 Port0..3 config

Здесь байт 1255 определено дважды - визимо, здесь ошибка...

-- 1269-1333 байты (64=16*4)

Но в указанном диапазоне не 64, а 65 байт! Нет ли здесь ошибки?

_=== Состояние и статистика оптических портов STM A\B (2*84 bytes)===
_=== A ===
29 0 Вкл.\Выкл. направление A вкл.\выкл. 0\1 0

...

114 N1_Rx - -
_=== B ===
115-199 Состояние и статистика оптического порта B

Но в диапазоне 29...114 не 84, а 86 байт, а в диапазоне 115...199 не 84 и не 86, а 85 байт! Очевидно, где-то здесь ошибка...

_=== Сост. контейнеров каналов Eth (6*63=378) ===
_== 0 ==
256 0 Задействован в VCG 1\0 0
262-265 REI_Count - -
======
633-647 Поле J2 выбранного контейнера - -

Но в диапазоне 256...265 не 6, а 10 байт! Очевидно, здесь какая-то ошибка...
И в диапазоне 256...632 не 378 (6*63) и не 630 (10*63), а 377 байт! Кажется здесь тоже ошибка...

_=== Сост. потоков\контейнеров Е1 (28*24 = 672) ===
651 0 Блокирован\Разблокирован 1\0 0
/
...

679 7 TU12_AIS 0\1 0

...

1322 Port[7..0]Link 0-no Link 1-Link 0\1 0

Но в диапазоне 651...679 не 28, а 29 байт! По-моему здесь какая-то ошибка...
И в диапазоне 651...1321 не 696 (29*24) и даже не 672 (28*24), а всего 671 байт! Здесь какая-то ошибка...

Ответ:
Большое спасибо!
Извини за невнимательность.
Добавлен файл V2.
По возможности проверь его, пожалуйста.

comment:7 by ledol, 22 hours ago

(REG[15..0] = 1325[7..0]1324[7..0] is valid when detect range is within ±30ppm and 1322[2..1] = 00)

В описании байта 1322 сказано, что 0 означает нет линка, а 1 - есть линк. Верно ли здесь написано, что измеритель T0 валиден, если в портах ethernet 1 и 2 нет линка? Нет ли здесь ошибки? Может быть должно быть наоборот - валиден если 1322[2..1] не равны 00?

И еще непонятно, что подразумевается под "1325[7..0]1324[7..0]". Согласон описанию, байты 1324 и 1325 - это битовые поля, вряд ли интерпретация этих байтов как числа имеет смысл...

Ответ:
1/
Номер байта скорректирован в приложении ...V2.txt.
Имеется ввиду состояние байта 1347.
1347.1..2 Состояние SEC: locked\tracing\hold\free-run 00\01\10\11

2/ И еще непонятно .....
Добавлена новая версия описания.

by ledol, 22 hours ago

Attachment: MiB_ST-124M_V3.txt added

comment:8 by ledol, 22 hours ago


В этой связи я хотел бы спросить про команду 2 - зачем она нужна? В смысле, для чего надо перед каждым чтением модулей SFP непременно записывать команду 2 (это я по аналогии с платой GE-12 например)? Если я правильно понимаю, что это работает примерно как команда "опрос" в SM-01 (то есть без команды данные, читаемые из переменной .8.0, не будут обновляться), то это создает большие неудобства при мониторинге - кроме собственно мониторинга придется еще делать периодическую запись команды 2, то есть нужны дополнительные "костыли" в системе мониторинга (или рядом с ней)... Нельзя ли убрать и команду 2 и читать модули при каждом запросе?

Ответ:
Структурно, опрос модулей SFP, выполняется контроллером через "ногодрыжество", обычными I/O пинами.
Временные накладные расходы опроса килобайтного объема черезвычайно высоки.
При этом, информация от этих модулей актуальна только в момент, когда пользователь нажимает в
WEB-интерфейсе кнопочку i, и видит актуальные данные SFP page1 + page2.
В общем есть 2 режима: 1/ Данные переменной MIB не используются; 2/ Данные обновляются и считываются с определенным периодом. В режиме 2 все остальные данные переменных платы не используются. И при этом в режиме 2 желательно выдержать визуальный период реакции на действие (0-3 сек.).

В общем, резюмируя, не знаю я как это включить в "рабочий цикл" опроса.
Вся эта "глобализация" переменных и направлена на оптимизацию временных затрат, с возможностью в будущем реализовать в платах каналы независимого от общего трафика мониторинга, а опрос SFP тут в периодике вообще не смотрится. Жду предложений.

in reply to:  6 comment:9 by alx, 19 hours ago

Replying to ledol:

Извини за невнимательность.
Добавлен файл V2.
По возможности проверь его, пожалуйста.

Ага, я его увидел, когда уже отправил комментарий. Но читать вчера уже было лень. :)
Сейас вижу, уже v3 приложено...

Спасибо за ответы, я думаю, информации для начала работы мне вполне достаточно. Дальше буду задавать вопросы по ходу дела.

in reply to:  8 comment:10 by alx, 16 hours ago

Replying to ledol:

Структурно, опрос модулей SFP, выполняется контроллером через "ногодрыжество", обычными I/O пинами.
Временные накладные расходы опроса килобайтного объема черезвычайно высоки.
При этом, информация от этих модулей актуальна только в момент, когда пользователь нажимает в
WEB-интерфейсе кнопочку i, и видит актуальные данные SFP page1 + page2.

Что-то я не понимаю...

Во-первых, что ты имеешь в виду, говоря "чрезвычайно высоки"? В плате SW-01 доступ к SFP тоже сделан "ногодрыгом". Чтение одного блока (256 байт) там занимает ~25 мс (обоих блоков - ~50 мс). А у тебя сколько получается? Задержку 50 мс никакой пользователь просто не заметит. Два SFP сидят на разных интерфейсах, поэтому читаются параллельно - то есть от того, что их два, время не увеличивается...

Во-вторых, когда пользователь в диалоге платы GE-12 нажимает кнопку "i", плата же все равно читает SFP, так как ей идет команда! То есть время все равно тратится, и даже больше!

Сравни два сценария. Вот как происходит опрос SFP в плате GE-12 (по моей памяти):

Как видишь из браузера последовательно уходит три разных запроса, прежде чем пользователь получит результат. А вот как это происходит в плате SW-01:

Во втором случае браузер делает только один запрос, и соответственно, пользователь получает результат быстрее (особенно если запрашиваемый блок далеко и задержка сети составляет заметное время)...

В общем, резюмируя, не знаю я как это включить в "рабочий цикл" опроса.
Вся эта "глобализация" переменных и направлена на оптимизацию временных затрат, с возможностью в будущем реализовать в платах каналы независимого от общего трафика мониторинга, а опрос SFP тут в периодике вообще не смотрится. Жду предложений.

Я, собственно, уже предложил - выполнять чтение данных из SFP по факту запроса переменной .8.0 (как на втором рисунке выше), а не по факту записи команды 2 в переменную .5.0. Такой вариант мне кажется лучшим из возможных.

Почему вариант с командой для пользователей плохо? Представь, что кто-то купил плату, посмотрел MIB, обнаружил там переменную, которая отдает данные SFP и думает: "О, классно, я могу завести в мою систему мониторинга уровень входного сигнала и температуру, и она будет меня предупреждать если уровень сигнала опустится ниже -25 или если температура поднимется выше +55!". Заводит все в систему мониторинга, целый год смотрит на графики и радуется что там ровная линия - уровень сигнала не падает, температура не растет. А про команду 2 он не знает, и система мониторинга просто получает данные, прочитанные год назад. А на самом деле уже и входной сигнал ниже -35, и температура выше +60... :)

Note: See TracTickets for help on using tickets.