реклама на сайте
подробности

 
 
> Использование агента NET-SNMP в своем железе, не могу понять, требуется помощь...
nvn
сообщение Jan 15 2010, 13:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Суть происходящего:
...есть железка, на которой запустил Linux, затем собрал и запустил там агента NET-SNMP, также там работает моя программа пользователя (т.е. моя программа), которой в процессе работы необходимо передавать и принимать данные SNMP-браузеру, и в зависимости от данных производить манипуляции с железом...

агент запускается, выдает SysDescr и т.п., а вот дальше...

вот тут я не могу понять, как написать MIB (или как научить агента нужным переменным) для своей железки, и как взаимодействовать с NET-SNMP, что бы передавать/принимать данные?

Может кто уже сталкивался с подобным и подскажет как надо?

Или на простом примере обяснить, как сделать так, что бы записав из браузера в определенную переменную 1 зажигался светодиод, записал 0 - потух.

Заранее спасибо!

Сообщение отредактировал nvn - Jan 15 2010, 13:24
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Idle
сообщение Jan 17 2010, 12:29
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



вам нужно добавить свой функционал в агента
посмотрите для начала FAQ из дистрибутива с иходниками netsnmp, раздел CODING, вопрос "How do I write C code to integrate with the agent?" и далее
наличие mib-файла необязательно, но в дистрибутиве есть примочка mib2c, которая генерирует шаблоны функций на си для реализации расширения агента
я занимался этим больше двух лет назад, подробно объяснить мне сложно, попробую найти свои старые исходники
Go to the top of the page
 
+Quote Post
nvn
сообщение Jan 18 2010, 06:44
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Цитата(Idle @ Jan 17 2010, 18:29) *
вам нужно добавить свой функционал в агента
посмотрите для начала FAQ из дистрибутива с иходниками netsnmp, раздел CODING, вопрос "How do I write C code to integrate with the agent?" и далее
наличие mib-файла необязательно, но в дистрибутиве есть примочка mib2c, которая генерирует шаблоны функций на си для реализации расширения агента
я занимался этим больше двух лет назад, подробно объяснить мне сложно, попробую найти свои старые исходники

Был бы Вам очень признателен за исходники (хотя бы фрагменты) в качестве примера
Go to the top of the page
 
+Quote Post
Idle
сообщение Jan 20 2010, 06:08
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



и вот эту статью посмотрите http://uuu.enseirb.fr/~kadionik/embedded/s...mp_english.html
Go to the top of the page
 
+Quote Post
nvn
сообщение Jan 22 2010, 05:35
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Цитата(Idle @ Jan 20 2010, 12:08) *
и вот эту статью посмотрите http://uuu.enseirb.fr/~kadionik/embedded/s...mp_english.html

Спасибо, буду читать и пробовать разобраться
Go to the top of the page
 
+Quote Post
nvn
сообщение Dec 20 2010, 06:53
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



Снова нужна помощь по NET-SNMP. Собрал snmpd с поддержкой AgentX, запустил моего субагента, он подключается к мастеру и все рабоатет.
Сейчас пытаюсь сделать вывод таблицы по принципу data_set и проблемма в том, что не могу получить первый столбец, вывод идет сразу со второго.
делаю следующее:

init_nstAgentSubagentObject()
{
static oid alarmTable_oid[] = { 1, 1, 2 };
size_t alarmTable_oid_len = OID_LENGTH(alarmTable_oid);
netsnmp_table_data_set *table_set;
netsnmp_table_row *row;

table_set = netsnmp_create_table_data_set("alarmTable");
table_set->table->store_indexes = 1; // пробовал и = 0

netsnmp_table_dataset_add_index(table_set, ASN_UNSIGNED);
netsnmp_table_set_add_default_row(table_set, 2, ASN_OCTET_STR, 0, NULL, 0);
netsnmp_register_table_data_set(netsnmp_create_handler_registration
("alarmTable", alarmTable_handler,
alarmTable_oid, alarmTable_oid_len,
HANDLER_CAN_RWRITE), table_set, NULL);

row = netsnmp_create_table_data_row();
default_num = 1;
netsnmp_table_row_add_index(row, ASN_UNSIGNED, &default_num, sizeof(default_num));
netsnmp_set_row_column(row, 2, ASN_OCTET_STR, "Test1", strlen("Test1"));

netsnmp_table_dataset_add_row(table_set, row);
}

после этого вижу только начиная со второго столбца т.е.
>snmpwalk -v 1 -On -c public 192.168.0.139 1.1.2
.1.1.2.1.2.1 = STRING: "Test1"
а где первый столбец? .1.1.2.1.1.1 = 1 ????

пробовал добавлять
netsnmp_table_set_add_default_row(table_set, 1, ASN_UNSIGNED, 0, NULL, 0);
вообще перестает отвечать на ветку .1.1.2

может кто знает в чем проблема? подскажите пожалуйста

ЗЫ: начал уж думать что data_set не подходит для этого

Go to the top of the page
 
+Quote Post
nvn
сообщение Dec 23 2010, 08:14
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 8-02-05
Пользователь №: 2 486



всем спасибо, проблема решена
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016