Возможно ли в ASN.1 наследовать? - PullRequest
0 голосов
/ 13 мая 2019

Я пишу в MIB для SNMP, используя ASN.1.

У меня есть несколько ревизий платы.Все доски имеют общие атрибуты, но более поздние ревизии имеют дополнительные атрибуты

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

Возможно ли так?Revision0 (OID 1) -> атрибуты (OID 1) Revision1 (OID 2) -> атрибуты (OID 1) в одной MIB?Позже я попытался изменить идентификатор атрибута, но все типы объектов переходят на Revision0!

1 Ответ

0 голосов
/ 15 мая 2019

Это зависит от того, что вы делаете, и от того, что вам нужно.

Если бы у меня было несколько скалярных объектов, и я добавил некоторые из них в конец поддерева для поддержки более нового оборудования, а старое оборудование не поддерживало его, вы бы просто полагались на старое оборудование, отклоняющее запросы для новых OID. Это совершенно бесполезно.

Если ваши MIB более структурные, с таблицами вы можете:

  1. Сделай то же самое; просто добавьте в таблицу дополнительные поля, которые поддерживаются условно, или
  2. Создайте вторую таблицу с новой информацией, , разделяющую индекс с первой , чтобы эффективно «расширить» первую таблицу. Однако это может быть излишним, и ваши пользователи должны будут опрашивать обе таблицы независимо друг от друга; семантически, однако, они будут аккуратно связаны.

Как правило, вы хотите избегать расширения ваших MIB. Подумайте о данных, которые вам понадобятся заранее, насколько это возможно, независимо от состояния аппаратной поддержки. Конечно, в реальности вы будете думать / придумывать функции позже, так что этого нельзя полностью избежать. Конечно, не меняйте OID: это запрещено .

Кстати, хотя лексическая запись MIB - ASN.1, схема, которую вы действительно используете, - SMIv2 .

...