Opened 6 years ago

Closed 6 years ago

#283 closed улучшение (готово)

Переработать логику работы транспорта SPI

Reported by: alx Owned by: alx
Priority: средний Milestone: 1 очередь
Component: any Keywords:
Cc:

Description

Когда был реализован транспорт SPI для обмена сообщениями с платой SW-01, предполагалось, что обмен почти всегда будет проходить в режиме "запрос" - "ответ", и спорадические сообщения (на тот момент только TRAP'ы) будут составлять исчезающе малый процент. По логике работы транспорта, для успешной обработки запроса от платы SW-01 необходимо чтобы на момент успешного принятия запроса был свободен буфер передачи. Если буфер передачи чем-то занят, плата VE-01 молча дропает запрос, ожидая повтора от платы SW-01 (плата не готова обслужить запрос).

Сейчас значительно увеличилось число отправляемых платой VE-01 спорадических сообщений, и вероятность обнаружить занятым буфер передачи на момент приема запроса возросла. Есть подозрение, что это может приводить к "пропаданию" платы из-за неответа на несколько повторных запросов подряд.

Чтобы устранить эту неприятность предлагается завести отдельный буфер для ответа на запрос (или даже пул из нескольких буферов), и отправлять содержимое этих буферов в первоочередном порядке. Дропать же запросы только в случае, если все буферы пула заняты.

Change History (4)

comment:1 by alx, 6 years ago

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

comment:2 by alx, 6 years ago

In 1438/sip_ua:

Передача ответов на запросы GET платы SW-01 реализована через очередь сообщений.
See #283.

comment:3 by alx, 6 years ago

In 1441/sip_ua:

Ответы на все запросы платы SW-01 передаются через очередь ответов. See #283.

comment:4 by alx, 6 years ago

Resolution: готово
Status: newclosed

После сделанных изменений потерь платы, действительно, больше не возникает.

Note: See TracTickets for help on using tickets.