檢視原始碼 snmpa_mib_data 行為 (snmp v5.18)

SNMP 代理程式 mib-server 資料模組的行為模組。

此模組定義了 SNMP 代理程式 mib-server 資料模組的行為。一個符合 snmpa_mib_data 的模組必須匯出下列函式

它們的語義和確切簽名將在下面解釋。

請注意,從匯入(載入)的 mib 中提取的資料部分由 mib-server 儲存,部分由 symbolic-store server 儲存。有關詳細資訊,請參閱預設的 mib-server 資料模組 snmpa_mib_data_tttn

摘要

回呼:回呼函式

執行 mib-server 資料的備份。

關閉 mib 儲存區。

執行程式碼變更(升級或降級)。

將 mib-server 資料傾印到 stdio (Destination = io) 或指定的檔案。

擷取 mib 資料的雜項資訊。

Filename 引數指定的 mib 載入到 mib-server 中。MeOverrideTeOverride 引數指定 mib-server 應如何處理重複的 mib 和 trap 條目。

尋找與 Oid 對應的 mib 條目。如果它是變數,則 Oid 必須是 <Oid for var>.0,如果它是表格,則 Oid 必須是

建立新的 mib-server 資料執行個體。

尋找依字典順序下一個 oid。

註冊子代理程式、處理 mib 樹部分的程序。

同步(如果可能,寫入磁碟)mib-server 資料。這取決於 mib_storage 選項,並且只有在 mib 儲存選項具有實際磁碟元件(例如 dets 或具有檔案的 ets)時才會生效。

從 mib-server 解載 Filename 引數指定的 mib。MeOverrideTeOverride 引數指定 mib-server 應如何處理重複的 mib 和 trap 條目。

取消註冊處理 mib 樹部分的子代理程式,由 oid()pid/0 (PidOrOid) 指定。

擷取 mib 的 mib 檔案。

擷取給定 oid() 所屬的 mib 檔案。

擷取所有載入的 mib 檔案。

類型

此類型的連結

filename()

檢視原始碼 (未匯出) (自 OTP R16B01 起)
-type filename() :: file:filename().
此類型的連結

mib_view()

檢視原始碼 (自 OTP R16B01 起)
-type mib_view() :: [mib_view_elem()].
此類型的連結

mib_view_elem()

檢視原始碼 (自 OTP R16B01 起)
-type mib_view_elem() ::
          {SubTree :: snmp:oid(), Mask :: [non_neg_integer()], Inclusion :: mib_view_inclusion()}.
此類型的連結

mib_view_inclusion()

檢視原始碼 (自 OTP R16B01 起)
-type mib_view_inclusion() :: 1 | 2.
此類型的連結

mib_view_mask()

檢視原始碼 (自 OTP R16B01 起)
-type mib_view_mask() :: [non_neg_integer()].

回呼:回呼函式

此回呼的連結

backup(State, BackupDir)

檢視原始碼 (自 OTP R16B01 起)
-callback backup(State :: term(), BackupDir :: string()) -> ok | {error, Reason :: term()}.

執行 mib-server 資料的備份。

請注意,如果可以進行備份,則其實現是相依的(也相依於使用的 mib 儲存區)。

此回呼的連結

close(State)

檢視原始碼 (自 OTP R16B01 起)
-callback close(State :: term()) -> ok.

關閉 mib 儲存區。

此回呼的連結

code_change(Direction, Vsn, Extra, State)

檢視原始碼 (自 OTP R16B01 起)
-callback code_change(Direction :: up | down, Vsn :: term(), Extra :: term(), State :: term()) ->
                         NewState :: term().

執行程式碼變更(升級或降級)。

有關 VsnExtra 引數的詳細資訊,請參閱 gen_server

此回呼的連結

dump(State, Destination)

檢視原始碼 (自 OTP R16B01 起)
-callback dump(State :: term(), Destination :: io | filename()) -> ok | {error, Reason :: term()}.

將 mib-server 資料傾印到 stdio (Destination = io) 或指定的檔案。

此回呼的連結

info(State)

檢視原始碼 (自 OTP R16B01 起)
-callback info(State :: term()) -> list().

擷取 mib 資料的雜項資訊。

這是一個實用函式,用於以簡單的方式檢查,例如,記憶體使用量。

此回呼的連結

load_mib(State, FileName, MeOverride, TeOverride)

檢視原始碼 (自 OTP R16B01 起)
-callback load_mib(State :: term(),
                   FileName :: filename(),
                   MeOverride :: boolean(),
                   TeOverride :: boolean()) ->
                      {ok, NewState :: term()} | {error, Reason :: already_loaded | term()}.

Filename 引數指定的 mib 載入到 mib-server 中。MeOverrideTeOverride 引數指定 mib-server 應如何處理重複的 mib 和 trap 條目。

此回呼的連結

lookup(State, Oid)

檢視原始碼 (自 OTP R16B01 起)
-callback lookup(State :: term(), Oid :: snmp:oid()) ->
                    {false, Reason :: term()} |
                    {variable, MibEntry :: snmpa:me()} |
                    {table_column, MibEntry :: snmpa:me(), TableEntryOid :: snmp:oid()} |
                    {subagent, SubAgentPid :: pid(), SAOid :: snmp:oid()}.

尋找與 Oid 對應的 mib 條目。如果它是變數,則 Oid 必須是 <Oid for var>.0,如果它是表格,則 Oid 必須是

此回呼的連結

new(MibStorage)

檢視原始碼 (自 OTP R16B01 起)
-callback new(MibStorage :: snmpa:mib_storage()) -> State :: term().

建立新的 mib-server 資料執行個體。

此回呼的連結

next(State, Oid, MibView)

檢視原始碼 (自 OTP R16B01 起)
-callback next(State :: term(), Oid :: snmp:oid(), MibView :: mib_view()) ->
                  endOfView | false |
                  {subagent, SubAgentPid :: pid(), SAOid :: snmp:oid()} |
                  {variable, MibEntry :: snmpa:me(), VarOid :: snmp:oid()} |
                  {table, TableOid :: snmp:oid(), TableRestOid :: snmp:oid(), MibEntry :: snmpa:me()}.

尋找依字典順序下一個 oid。

此回呼的連結

register_subagent(State, Oid, Pid)

檢視原始碼 (自 OTP R16B01 起)
-callback register_subagent(State :: term(), Oid :: snmp:oid(), Pid :: pid()) ->
                               {ok, NewState :: term()} | {error, Reason :: term()}.

註冊子代理程式、處理 mib 樹部分的程序。

此回呼的連結

sync(State)

檢視原始碼 (自 OTP R16B01 起)
-callback sync(State :: term()) -> ok.

同步(如果可能,寫入磁碟)mib-server 資料。這取決於 mib_storage 選項,並且只有在 mib 儲存選項具有實際磁碟元件(例如 dets 或具有檔案的 ets)時才會生效。

此回呼的連結

unload_mib(State, FileName, MeOverride, TeOverride)

檢視原始碼 (自 OTP R16B01 起)
-callback unload_mib(State :: term(),
                     FileName :: filename(),
                     MeOverride :: boolean(),
                     TeOverride :: boolean()) ->
                        {ok, NewState :: term()} | {error, Reason :: not_loaded | term()}.

從 mib-server 解載 Filename 引數指定的 mib。MeOverrideTeOverride 引數指定 mib-server 應如何處理重複的 mib 和 trap 條目。

此回呼的連結

unregister_subagent(State, PidOrOid)

檢視原始碼 (自 OTP R16B01 起)
-callback unregister_subagent(State :: term(), PidOrOid :: pid() | snmp:oid()) ->
                                 {ok, NewState :: term()} |
                                 {ok, NewState :: term(), Pid :: pid()} |
                                 {error, Reason :: term()}.

取消註冊處理 mib 樹部分的子代理程式,由 oid()pid/0 (PidOrOid) 指定。

當使用 oid() 取消註冊子代理程式時,也會傳回處理子樹的程序的 pid/0

此回呼的連結

whereis_mib(State, MibName)

檢視原始碼 (自 OTP R16B01 起)
-callback whereis_mib(State :: term(), MibName :: atom()) ->
                         {ok, Filename :: filename()} | {error, Reason :: term()}.

擷取 mib 的 mib 檔案。

此回呼的連結

which_mib(State, Oid)

檢視原始碼 (自 OTP R16B01 起)
-callback which_mib(State :: term(), Oid :: snmp:oid()) -> {ok, Mib :: string()} | {error, Reason :: term()}.

擷取給定 oid() 所屬的 mib 檔案。

此回呼的連結

which_mibs(State)

檢視原始碼 (自 OTP R16B01 起)
-callback which_mibs(State :: term()) -> [{MibName :: atom(), Filename :: filename()}].

擷取所有載入的 mib 檔案。

回呼

此回呼的連結

unload_mib(State, Filename)

檢視原始碼 (選用) (自 OTP R16B01 起)
-callback unload_mib(State, Filename) -> {ok, NewState} | {error, Reason}
                        when
                            State :: term(),
                            Filename :: filename(),
                            NewState :: term(),
                            Reason :: not_loaded | term().