Opened 3 years ago

Closed 3 years ago

#514 closed улучшение (не будем делать)

Перенести настройку Flow Control (Запрет управления потоком) в настройки Ethernet

Reported by: san Owned by: alx
Priority: средний Milestone: 1 очередь
Component: web-интерфейс (sw) Keywords:
Cc:

Description

Предлагаю перенести настройку "Запрет управления потоком" из окон плат на вкладку кратких настроек Ethernet->Порты. Аргументы такие:

  1. Эта настройка - настройка портов коммутатора SW-01 и к платам она не относится и на мой взгляд не логично её размещать в окне настроек плат. Например настройка Блокировка порта или Маскирование логично располагаются на вкладке Ethernet-Порты, и Настройка "Запрет управления потоком" ничем не хуже их я считаю :)
  2. При разработке каждой новой платы с коммутатором Ethernet нам ужно эту настройку рисовать в окне платы, это лишняя работа, ну и например в плате TD-01 я такой настройки не вижу, видимо забыли добавить.
  3. В случае если пользователь не пользуется Flow Control(по моим субъективным ощущениям это более 90% пользователей, точнее я не знаю ни одного пользователя который бы хотел от нашей аппаратуры поддержки Flow Control, но не исключаю что они есть) и хочет отключить функцию, ему проще это будет сделать на одной вкладке, нежели залезать в окно каждой платы.

Change History (8)

in reply to:  description comment:1 by alx, 3 years ago

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

TL;DR: с предложением я не согласен.

Replying to san:

  1. Эта настройка - настройка портов коммутатора SW-01

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

и к платам она не относится

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

и на мой взгляд не логично её размещать в окне настроек плат.

У меня иной взгляд. Вот мои аргументы.

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

Теперь приведу абстрактный пример. Допустим, есть три типа платы - A, B и C. Для правильной работы платы A требуется, чтобы управление потоком было. Для правильной работы платы B требуется, чтобы, наоборот, управления потоком не было. А плате C вообще требуется гибкий подход: в каких-то конфигурациях и применениях управление потоком требуется, в каких-то других - наоборот, требуется чтобы его не было.

Сейчас у нас установка нужного режима для плат A и B происходит автоматически: плата SW-01, увидев, что в слоте стоит плата типа A, включает управление потоком, а увидев, что стоит плата типа B - выключает его.

Теперь представим, что настройка управления потоком производится, как ты и предлагаешь, независимо от настроек платы на вкладке "ethernet". Тогда при установке платы A пользователю требуется открыть ее конфигурацию, все настроить, записать, а потом перейти на вкладку ethernet и дополнительно включить управление потоком (или убедиться, что оно уже включено)! Аналогично, для платы B потребуется зайти туда чтобы выключить управление потоком. Где же улучшение? :)

Теперь посмотрим, что происходит в случае платы C. Сейчас оператор, установив плату C, открывает ее настройки и в одном диалоге конфигурирует все что надо. В предложенном же тобой варианте ему придется, записав настройки в плату, дополнительно идти на вкладку портов ethernet - чтобы установить требуемый режим управления потоком. В чем же улучшение?

Это еще не все. Представь себе, что по каким-то причинам плату C временно заменили на плату D, для которой требуется другая настройка управления потоком. Плату D настроили, настройку управления потоком поменяли. Теперь плату C возвращаем на свое исходное место. Так как сейчас для платы C настройка управления потоком хранится в конфиг-файле в разделе конфигурации платы, а не в общей части настроек, то исходная настройка будет автоматически найдена и применена вместе со всеми остальными настройками платы C, и ничего повторно конфигурировать не потребуется. В случае же реализации твоего предложения пришлось бы повторно корректировать настройку на вкладке "ethernet".

Вывод: лично я в твоем предложении вижу не улучшение, а, наоборот, ухудшение юзер-экспириенс, плюс дополнительную возможность просто забыть правильно выставить эту настройку.

И еще добавлю для иллюстрации своей логики: а почему ты ограничиваешься в своем предложении только настройкой управления потока? Ведь это лишь одна из целого ряда настроек, имеющихся у портов платы SW-01! Было бы более последовательно также вынести на вкладку портов ethernet настройки скорости, дуплекса, типа интерфейса (SGMII/1000Base-X)... Это же все настройки портов платы SW-01, почему они должны зависеть от каких-то других плат? :)

  1. При разработке каждой новой платы с коммутатором Ethernet нам ужно эту настройку рисовать в окне платы, это лишняя работа,

Почему каждой? Каким-то платам эта настройка нужна, каким-то - нет. Это разработчикам плат решать. А добавить чекбокс в диалог - не такая уж сложная работа, это одна строка текста. Согласен, что мне самому было бы удобнее сделать эту настройку один раз и навсегда, но это не было бы удобно для пользователей аппаратуры. И при выборе между моим удобством и удобством пользователей я обязан выбрать удобство пользователей.

ну и например в плате TD-01 я такой настройки не вижу, видимо забыли добавить.

Не думаю. Как правило, при разработке новой платы применяется решение, уже имеющееся в какой-то из существующих плат. И разработчик платы не дает мне исчерпывающих указаний, как что надо сделать, а просто говорит: надо сделать так же, как сделано для платы такой-то. Насколько я помню, так было и в случае TD-01. Хотя, конечно, достоверно это сейчас не вспомню...

  1. В случае если пользователь не пользуется Flow Control(по моим субъективным ощущениям это более 90% пользователей, точнее я не знаю ни одного пользователя который бы хотел от нашей аппаратуры поддержки Flow Control, но не исключаю что они есть) и хочет отключить функцию, ему проще это будет сделать на одной вкладке, нежели залезать в окно каждой платы.

Этот аргумент я вообще не понимаю... Пользователю ведь все равно надо было залезать в окна каждой платы чтобы каждую плату настроить! Без настройки (точнее, с дефолтной конфигурацией, типа "вставил плату и пользуйся") способны работать только самые примитивные платы типа FO-08 - так у них и настройки управления потоком нет... :) А любую более сложную (функционально) плату все равно надо конфигурировать! Что же он сразу все не настроил как надо? :) Таким же образом он мог и любые другие настройки выставить неправильно, и тоже пришлось бы заново настройки всех плат открывать...

Другое дело, если ты говоришь, что в подавляющем большинстве случаев управление потоком должно быть отключено, то имело бы смысл предложить изменить значение по умолчанию для этой настройки. Это избавит 90% пользователей от необходимости изменять значение настройки после первой установки платы...

Last edited 3 years ago by alx (previous) (diff)

comment:2 by san, 3 years ago

Другое дело, если ты говоришь, что в подавляющем большинстве случаев управление потоком должно быть отключено, то имело бы смысл предложить изменить значение по умолчанию для этой настройки. Это избавит 90% пользователей от необходимости изменять значение настройки после первой установки платы...

Это немного в сторону от темы, но да, я считаю, что по умолчанию Flow Control должен быть отключен. Я при техподдержке довольно много раз сталкивался со случаями когда включенный flow control был источником сетевых проблем пользователя, при этом пользователь не догадывался, что такая функция у него включена. И наоборот не встречал ни одного, кто бы намеренно ей пользовался.

Last edited 3 years ago by san (previous) (diff)

comment:3 by san, 3 years ago

Это разработчикам плат решать.

А это аргумент в пользу моего улучшения)) Разработчик TD-01 вообще не знает, что в окне его платы нужно разместить настройку которая напрямую не имеет отношения к настройкам его платы, в регистры то нечего ему записывать по этой галочке.

Я думаю нужно пригласить в обсуждение кого-то третьего :-)

если ты говоришь, что в подавляющем большинстве случаев управление потоком должно быть отключено

Создал #515

in reply to:  3 comment:4 by alx, 3 years ago

Replying to san:

Разработчик TD-01 вообще не знает, что в окне его платы нужно разместить настройку которая напрямую не имеет отношения к настройкам его платы,

Разработчик не может этого не знать, так как именно он решает, должна быть такая настройка или нет. И как это настройка напрямую не имеет отношения к настройкам его платы? А от чего, если не от платы, зависит, в каком режиме должно работать соединение платы с центральным коммутатором? Кто кроме разработчика платы может это знать? Я считаю, что именно к плате эта настройка и имеет прямое отношение.

в регистры то нечего ему записывать по этой галочке.

Во-первых, это совсем другой вопрос - как, каким образом эта настройка применяется к соединению. Применяется она на одной стороне соединения или на другой - это детали реализации, не меняющие смысла настройки.

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

Last edited 3 years ago by alx (previous) (diff)

comment:5 by alx, 3 years ago

Resolution: не будем делать
Status: newclosed

comment:6 by san, 3 years ago

Resolution: не будем делать
Status: closedreopened

Я нашёл ещё аргумент)
Мне сейчас нужно выключит флоуконтрол в блоке у пользователя (я вижу что он срабатывает где не нужен и ломает сеть)
Хочу выключить его на порту где плата Ge-12, для этого я вынужден записать настройки в плат, но при этом плата "дёрнет" все свои интерфейсы(некоторые платы так делают), а на это административного разрешения нет.

Аргумент: при расположении настройки в окне платы, для её изменения, приходится записывать все настройки в плату, что на некоторых платах может приводить к разрыву связи.

in reply to:  6 comment:7 by alx, 3 years ago

Replying to san:

Я нашёл ещё аргумент)
Аргумент: ...приходится записывать все настройки в плату, что на некоторых платах может приводить к разрыву связи.

В приведенном примере - очевидная проблема в поведении платы. Но почему-то вместо этой проблемы ты предлагаешь бороться с одним из ее частных следствий...

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

Проблема известна пятый год. Мне кажется, стоит, наконец, поработать над тикетом mc-04:#176 и устранить источник проблемы вместо того чтобы валить с больной головы на здоровую...

comment:8 by alx, 3 years ago

Resolution: не будем делать
Status: reopenedclosed

Новых аргументов нет, закрываю тикет.

Note: See TracTickets for help on using tickets.