Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#248 closed баг (fixed)

В настройках RSTP "Path cost" применяется после второго нажатия.

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

Description (last modified by san)

Эксперимент:

  1. Два блока: Root и Not Root соединены одним линком, RSTP на портах соединяющих блоки включен.
  2. На блоке Not Root у порта с Role = Root меняем цену пути на новое значение.
  3. Замечаем что в табличке Status: в поле Root path cost: осталась старая цена пути.
  4. Вызываем диалог изменения цены ещё раз и не изменяя значения нажимаем OK, видим что теперь в Status: Root path cost: - новая цена.

r1481

Attachments (6)

status.png (7.5 KB ) - added by san 7 years ago.
0.png (55.1 KB ) - added by san 7 years ago.
1.png (56.4 KB ) - added by san 7 years ago.
2.png (56.3 KB ) - added by san 7 years ago.
3.png (59.4 KB ) - added by san 7 years ago.
4.png (56.3 KB ) - added by san 7 years ago.

Download all attachments as: .zip

Change History (15)

comment:1 by san, 7 years ago

Description: modified (diff)

comment:2 by alx, 7 years ago

Воспроизвести не удается. Очевидно, в описанном случае имели место какие-то дополнительные факторы.

Саша, удается ли тебе самому воспроизвести описанное?

by san, 7 years ago

Attachment: status.png added

comment:3 by san, 7 years ago

У меня воспроизводится вчера и сегодня на разных блоках.

Уточню, возможно ты не понял что я имел ввиду.

При изменении значения Path cost и нажатии ОК значение изменяется:

  1. в таблице в колонке Установки: Path cost
  2. в таблице в колонке Состояние: Path cost

Но, при этом, значение "не применяется", т.е. коммутатор считает путь до рута по старой цене, о чем свидетельствует не изменившееся значение цены в таблице Status.
вот тут:

Выходит, что при нажатии ОК применяется "старое значение", т.е. то, которое на момент нажатия уже было в таблице.

comment:4 by alx, 7 years ago

Что-то ты меня совсем запутал...

В описании тикета говорится, что изменения цены производятся на не-рутовом узле ("На блоке Not Root..."). На картинке же, которую ты приаттачил, написано, что узел - Root... Далее, у тебя на картинке значение "Root path cost" равно нулю. Ты считаешь, что это неправильно? Почему? Каким оно по-твоему должно быть?

На главной страничке wiki в разделе Если Вы нашли баг говорится:

  1. Подробно опишите проблему. Напишите, что и при каких обстоятельствах Вы делали, что ожидали получить в результате и что получили на самом деле.

Я пока понял лишь (и то теперь не уверен, что правильно), что было сделано. Что в результате было в поле Root path cost, и что ты ожидал вместо этого там увидеть, для меня осталось неясным. Напиши, пожалуйста, конкретно: "ввожу то-то, вижу то-то, а должно быть то-то, потому что...".

Сам я проверял так: на узле Non-Root цена порта была установлена в Auto, что давало значение цены 20000. В поле Root path cost отображалось 20004 (я не знаю топологию сети, вероятно, корневой узел не был непосредственным соседом). Я изменил "Auto" на "22000", через некоторое время в поле Root path cost стало отображаться 22004. Правильно это или нет, я не знаю. Если неправильно - напиши, пожалуйста, как должно быть и почему.

comment:5 by san, 7 years ago

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

Сам я проверял так

Да, суть проверки совпадает с моим экспериментом

Я изменил "Auto" на "22000", через некоторое время в поле Root path cost стало отображаться 22004.

Хм, похоже у тебя и в самом деле не воспроизводится. В моём случае Root path cost так и не изменялось, до тех пор пока я не нажимал ОК второй раз.

Хорошо. Сейчас возьму пару блоков и зафиксирую эксперимент подробнее.

by san, 7 years ago

Attachment: 0.png added

by san, 7 years ago

Attachment: 1.png added

by san, 7 years ago

Attachment: 2.png added

by san, 7 years ago

Attachment: 3.png added

by san, 7 years ago

Attachment: 4.png added

comment:6 by san, 7 years ago

Провожу эксперимент на демоблоке:

1. Демоблок подключен напрямую к Root через порт 8, а порт 9 смотрит во внешнюю сеть

вот так выглядит Root(192.168.20.12):



2. Начальное состояние демоблока:
порт 8 Past cost=Auto (20000)
Root past cost = 20000
соответствует моим ожиданиям



3. Изменяю настройки на порте 8, Past cost=100
Жду более минуты
Ожидаю, что новая стоимость пути "применится" и Root past cost примет значение 100
однако вижу что Root past cost по прежнему = 20000



4. Снова вызываю диалог изменения стоимости пути порта 8 и не изменяя значения нажимаю OK


5. Теперь Root past cost принял значение 100, как я ожидал в п.3


Блоки из эксперимента оставил включенными, можешь повторить на них же.

Version 0, edited 7 years ago by san (next)

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

Replying to san:

Жду более минуты

Это, возможно, маловато, на "Нижнем Самурае" у меня значение изменялось через 2-3 минуты. Тем не менее, сейчас я провел эксперимент на "Демо доступе" - прошло уже более 15 минут, значение не меняется.

Думаю, баг можно считать подтвержденным и воспроизводимым.

comment:8 by alx, 7 years ago

Resolution: fixed
Status: newclosed

In 1521/sw:

Исправлен баг RSTP: при изменении цены пути порта, через который подключен корневой коммутатор,
цена пути самого порта менялась на заданную, но суммарная цена пути к корневому коммутатору
не обновлялась.

Экспериментально выяснено, что суммарная цена пути обновляется при любом изменении конфигурации,
предположительно при вызове STP_stpm_update() при установленном флаге port->reselect. Для
устранения бага теперь при любом изменении конфигурации любого порта выполняется дополнительный
вызов STP_IN_set_port_cfg() со сброшенными флагами field_mask. Closes #248.

comment:9 by alx, 7 years ago

Саша, на "Демо-доступе" обновлена прошивка, если не трудно, потыкай в него палочкой...

Note: See TracTickets for help on using tickets.