Lines Matching full:pdu

79 	struct snmp_pdu	*pdu;  member
124 struct snmp_pdu pdu; member
443 * Initialize the first PDU to send
446 table_init_pdu(const struct snmp_table *descr, struct snmp_pdu *pdu) in table_init_pdu() argument
449 snmp_pdu_create(pdu, SNMP_PDU_GETNEXT); in table_init_pdu()
451 snmp_pdu_create(pdu, SNMP_PDU_GETBULK); in table_init_pdu()
452 pdu->error_index = 10; in table_init_pdu()
455 pdu->bindings[pdu->nbindings].syntax = SNMP_SYNTAX_NULL; in table_init_pdu()
456 pdu->bindings[pdu->nbindings].var = descr->last_change; in table_init_pdu()
457 pdu->nbindings++; in table_init_pdu()
458 if (pdu->version != SNMP_V1) in table_init_pdu()
459 pdu->error_status++; in table_init_pdu()
461 pdu->bindings[pdu->nbindings].var = descr->table; in table_init_pdu()
462 pdu->bindings[pdu->nbindings].syntax = SNMP_SYNTAX_NULL; in table_init_pdu()
463 pdu->nbindings++; in table_init_pdu()
586 table_init_pdu(descr, &work.pdu); in snmp_table_fetch()
589 if (snmp_dialog(&work.pdu, &resp)) { in snmp_table_fetch()
607 work.pdu.bindings[work.pdu.nbindings - 1].var = in snmp_table_fetch()
663 table_init_pdu(work->descr, &work->pdu); in table_cb()
664 if (snmp_pdu_send(&work->pdu, table_cb, work) == -1) { in table_cb()
697 work->pdu.bindings[work->pdu.nbindings - 1].var = in table_cb()
702 if (snmp_pdu_send(&work->pdu, table_cb, work) == -1) { in table_cb()
731 * Start by sending the first PDU in snmp_table_fetch_async()
735 table_init_pdu(descr, &work->pdu); in snmp_table_fetch_async()
737 if (snmp_pdu_send(&work->pdu, table_cb, work) == -1) { in snmp_table_fetch_async()
1145 snmp_pdu_create(struct snmp_pdu *pdu, u_int op) in snmp_pdu_create() argument
1147 memset(pdu, 0, sizeof(struct snmp_pdu)); in snmp_pdu_create()
1150 strlcpy(pdu->community, snmp_client.write_community, in snmp_pdu_create()
1151 sizeof(pdu->community)); in snmp_pdu_create()
1153 strlcpy(pdu->community, snmp_client.read_community, in snmp_pdu_create()
1154 sizeof(pdu->community)); in snmp_pdu_create()
1156 pdu->type = op; in snmp_pdu_create()
1157 pdu->version = snmp_client.version; in snmp_pdu_create()
1158 pdu->error_status = 0; in snmp_pdu_create()
1159 pdu->error_index = 0; in snmp_pdu_create()
1160 pdu->nbindings = 0; in snmp_pdu_create()
1165 pdu->identifier = ++snmp_client.identifier; in snmp_pdu_create()
1166 pdu->engine.max_msg_size = snmp_client.engine.max_msg_size; in snmp_pdu_create()
1167 pdu->flags = 0; in snmp_pdu_create()
1168 pdu->security_model = snmp_client.security_model; in snmp_pdu_create()
1171 memcpy(&pdu->engine, &snmp_client.engine, sizeof(pdu->engine)); in snmp_pdu_create()
1172 memcpy(&pdu->user, &snmp_client.user, sizeof(pdu->user)); in snmp_pdu_create()
1173 snmp_pdu_init_secparams(pdu); in snmp_pdu_create()
1178 memcpy(pdu->context_engine, snmp_client.cengine, in snmp_pdu_create()
1180 pdu->context_engine_len = snmp_client.clen; in snmp_pdu_create()
1182 memcpy(pdu->context_engine, snmp_client.engine.engine_id, in snmp_pdu_create()
1184 pdu->context_engine_len = snmp_client.engine.engine_len; in snmp_pdu_create()
1187 strlcpy(pdu->context_name, snmp_client.cname, in snmp_pdu_create()
1188 sizeof(pdu->context_name)); in snmp_pdu_create()
1191 /* add pairs of (struct asn_oid, enum snmp_syntax) to an existing pdu */
1194 snmp_add_binding(struct snmp_v1_pdu *pdu, ...) in snmp_add_binding() argument
1200 va_start(ap, pdu); in snmp_add_binding()
1202 ret = pdu->nbindings; in snmp_add_binding()
1204 if (pdu->nbindings >= SNMP_MAX_BINDINGS){ in snmp_add_binding()
1208 pdu->bindings[pdu->nbindings].var = *oid; in snmp_add_binding()
1209 pdu->bindings[pdu->nbindings].syntax = in snmp_add_binding()
1211 pdu->nbindings++; in snmp_add_binding()
1235 snmp_send_packet(struct snmp_pdu * pdu) in snmp_send_packet() argument
1246 pdu->request_id = snmp_next_reqid(&snmp_client); in snmp_send_packet()
1250 if (snmp_pdu_encode(pdu, &b)) { in snmp_send_packet()
1257 snmp_pdu_dump(pdu); in snmp_send_packet()
1266 return (pdu->request_id); in snmp_send_packet()
1286 listentry->callback(listentry->pdu, NULL, listentry->arg); in snmp_timeout()
1291 listentry->reqid = snmp_send_packet(listentry->pdu); in snmp_timeout()
1299 snmp_pdu_send(struct snmp_pdu *pdu, snmp_send_cb_f func, void *arg) in snmp_pdu_send() argument
1310 if ((id = snmp_send_packet(pdu)) == -1) { in snmp_pdu_send()
1316 listentry->pdu = pdu; in snmp_pdu_send()
1320 listentry->reqid = pdu->request_id; in snmp_pdu_send()
1347 snmp_receive_packet(struct snmp_pdu *pdu, struct timeval *tv) in snmp_receive_packet() argument
1450 memset(pdu, 0, sizeof(*pdu)); in snmp_receive_packet()
1452 memcpy(&pdu->engine, &snmp_client.engine, sizeof(pdu->engine)); in snmp_receive_packet()
1453 memcpy(&pdu->user, &snmp_client.user, sizeof(pdu->user)); in snmp_receive_packet()
1454 snmp_pdu_init_secparams(pdu); in snmp_receive_packet()
1457 if (SNMP_CODE_OK != (ret = snmp_pdu_decode(&abuf, pdu, &ip))) { in snmp_receive_packet()
1465 snmp_pdu_dump(pdu); in snmp_receive_packet()
1467 snmp_client.engine.engine_time = pdu->engine.engine_time; in snmp_receive_packet()
1468 snmp_client.engine.engine_boots = pdu->engine.engine_boots; in snmp_receive_packet()
1479 warn("ignoring snmp pdu %u", resp->type); in snmp_deliver_packet()
1490 listentry->callback(listentry->pdu, resp, listentry->arg); in snmp_deliver_packet()
1510 seterr(&snmp_client, "no memory for returning PDU"); in snmp_receive()
1529 * should point to a template PDU which contains the base OIDs and the
1576 * point to a template PDU which contains the OIDs and the syntaxes. This
1620 * Check the response to a SET PDU. We check: - the error status must be 0 -
1685 errx(1, "%s: bad pdu type %i", __func__, req->type); in snmp_pdu_check()
1693 struct snmp_pdu pdu; in snmp_dialog() local
1702 pdu = *req; in snmp_dialog()
1703 if (pdu.type == SNMP_PDU_GET || pdu.type == SNMP_PDU_GETNEXT || in snmp_dialog()
1704 pdu.type == SNMP_PDU_GETBULK) { in snmp_dialog()
1705 for (i = 0; i < pdu.nbindings; i++) in snmp_dialog()
1706 pdu.bindings[i].syntax = SNMP_SYNTAX_NULL; in snmp_dialog()
1712 if ((reqid = snmp_send_packet(&pdu)) == -1) in snmp_dialog()