void nhdp_reader_init(void) { /* Initialize reader */ rfc5444_reader_init(&reader); /* Register packet consumer for sequence number processing */ rfc5444_reader_add_packet_consumer(&reader, &_nhdp_packet_consumer, NULL, 0); /* Register HELLO message consumer */ rfc5444_reader_add_message_consumer(&reader, &_nhdp_msg_consumer, _nhdp_msg_tlvs, ARRAYSIZE(_nhdp_msg_tlvs)); rfc5444_reader_add_message_consumer(&reader, &_nhdp_address_consumer, _nhdp_addr_tlvs, ARRAYSIZE(_nhdp_addr_tlvs)); }
void aodv_packet_reader_init(void) { VDEBUG("%s()\n", __func__); /* initialize reader */ rfc5444_reader_init(&reader); /* register message consumers. We have no message TLVs, so we can leave the * rfc5444_reader_tlvblock_consumer_entry empty */ rfc5444_reader_add_message_consumer(&reader, &_rreq_consumer, NULL, 0); rfc5444_reader_add_message_consumer(&reader, &_rrep_consumer, NULL, 0); rfc5444_reader_add_message_consumer(&reader, &_rerr_consumer, NULL, 0); /* register address consumer */ rfc5444_reader_add_message_consumer(&reader, &_rreq_address_consumer, _rreq_rrep_address_consumer_entries, ARRAYSIZE(_rreq_rrep_address_consumer_entries)); rfc5444_reader_add_message_consumer(&reader, &_rrep_address_consumer, _rreq_rrep_address_consumer_entries, ARRAYSIZE(_rreq_rrep_address_consumer_entries)); rfc5444_reader_add_message_consumer(&reader, &_rerr_address_consumer, _rerr_address_consumer_entries, ARRAYSIZE(_rerr_address_consumer_entries)); }
/** * Add a printer for a rfc5444 reader * @param session pointer to initialized rfc5444 printer session * @param reader pointer to initialized reader */ void rfc5444_print_add(struct rfc5444_print_session *session, struct rfc5444_reader *reader) { /* memorize reader */ session->_reader = reader; session->_pkt.start_callback = _cb_print_pkt_start; session->_pkt.tlv_callback = _cb_print_pkt_tlv; session->_pkt.end_callback = _cb_print_pkt_end; rfc5444_reader_add_packet_consumer(reader, &session->_pkt, NULL, 0); session->_msg.default_msg_consumer = true; session->_msg.start_callback = _cb_print_msg_start; session->_msg.tlv_callback = _cb_print_msg_tlv; session->_msg.end_callback = _cb_print_msg_end; rfc5444_reader_add_message_consumer(reader, &session->_msg, NULL, 0); session->_addr.default_msg_consumer = true; session->_addr.addrblock_consumer = true; session->_addr.start_callback = _cb_print_addr_start; session->_addr.tlv_callback = _cb_print_addr_tlv; session->_addr.end_callback = _cb_print_addr_end; rfc5444_reader_add_message_consumer(reader, &session->_addr, NULL, 0); }