void qdr_query_get_first(qdr_query_t *query, int offset) { qdr_action_t *action = qdr_action(qdrh_query_get_first_CT, "query_get_first"); action->args.agent.query = query; action->args.agent.offset = offset; qdr_action_enqueue(query->core, action); }
void qdr_core_set_valid_origins(qdr_core_t *core, int router_maskbit, qd_bitmask_t *routers) { qdr_action_t *action = qdr_action(qdr_set_valid_origins_CT, "set_valid_origins"); action->args.route_table.router_maskbit = router_maskbit; action->args.route_table.router_set = routers; qdr_action_enqueue(core, action); }
void qdr_core_map_destination(qdr_core_t *core, int router_maskbit, const char *address_hash) { qdr_action_t *action = qdr_action(qdr_map_destination_CT, "map_destination"); action->args.route_table.router_maskbit = router_maskbit; action->args.route_table.address = qdr_field(address_hash); qdr_action_enqueue(core, action); }
void qdr_core_set_next_hop(qdr_core_t *core, int router_maskbit, int nh_router_maskbit) { qdr_action_t *action = qdr_action(qdr_set_next_hop_CT, "set_next_hop"); action->args.route_table.router_maskbit = router_maskbit; action->args.route_table.nh_router_maskbit = nh_router_maskbit; qdr_action_enqueue(core, action); }
void qdr_core_set_link(qdr_core_t *core, int router_maskbit, int link_maskbit) { qdr_action_t *action = qdr_action(qdr_set_link_CT, "set_link"); action->args.route_table.router_maskbit = router_maskbit; action->args.route_table.link_maskbit = link_maskbit; qdr_action_enqueue(core, action); }
void qdr_core_add_router(qdr_core_t *core, const char *address, int router_maskbit) { qdr_action_t *action = qdr_action(qdr_add_router_CT, "add_router"); action->args.route_table.router_maskbit = router_maskbit; action->args.route_table.address = qdr_field(address); qdr_action_enqueue(core, action); }
void qdr_request_global_stats(qdr_core_t *core, qdr_global_stats_t *stats, qdr_global_stats_handler_t callback, void *context) { qdr_action_t *action = qdr_action(qdr_global_stats_request_CT, "global_stats_request"); action->args.stats_request.stats = stats; action->args.stats_request.handler = callback; action->args.stats_request.context = context; qdr_action_enqueue(core, action); }
void qdr_core_unsubscribe(qdr_subscription_t *sub) { if (sub) { qdr_action_t *action = qdr_action(qdr_unsubscribe_CT, "unsubscribe"); action->args.io.subscription = sub; qdr_action_enqueue(sub->core, action); } }
void qdr_manage_delete(qdr_core_t *core, void *context, qd_router_entity_type_t type, qd_field_iterator_t *name, qd_field_iterator_t *identity) { qdr_action_t *action = qdr_action(qdr_manage_delete_CT, "manage_delete"); // Create a query object here action->args.agent.query = qdr_query(core, context, type, 0); action->args.agent.name = name; action->args.agent.identity = identity; qdr_action_enqueue(core, action); }
void qdr_manage_update(qdr_core_t *core, void *context, qd_router_entity_type_t type, qd_field_iterator_t *name, qd_field_iterator_t *identity, qd_parsed_field_t *in_body, qd_composed_field_t *out_body) { qdr_action_t *action = qdr_action(qdr_manage_update_CT, "manage_update"); action->args.agent.query = qdr_query(core, context, type, out_body); action->args.agent.name = name; action->args.agent.identity = identity; action->args.agent.in_body = in_body; qdr_action_enqueue(core, action); }
void qdr_manage_read(qdr_core_t *core, void *context, qd_router_entity_type_t entity_type, qd_field_iterator_t *name, qd_field_iterator_t *identity, qd_composed_field_t *body) { qdr_action_t *action = qdr_action(qdr_manage_read_CT, "manage_read"); // Create a query object here action->args.agent.query = qdr_query(core, context, entity_type, body); action->args.agent.identity = identity; action->args.agent.name = name; qdr_action_enqueue(core, action); }
qdr_subscription_t *qdr_core_subscribe(qdr_core_t *core, const char *address, char aclass, char phase, qd_address_treatment_t treatment, qdr_receive_t on_message, void *context) { qdr_subscription_t *sub = NEW(qdr_subscription_t); sub->core = core; sub->addr = 0; sub->on_message = on_message; sub->on_message_context = context; qdr_action_t *action = qdr_action(qdr_subscribe_CT, "subscribe"); action->args.io.address = qdr_field(address); action->args.io.address_class = aclass; action->args.io.address_phase = phase; action->args.io.subscription = sub; action->args.io.treatment = treatment; qdr_action_enqueue(core, action); return sub; }
void qdr_query_get_next(qdr_query_t *query) { qdr_action_t *action = qdr_action(qdrh_query_get_next_CT, "query_get_next"); action->args.agent.query = query; qdr_action_enqueue(query->core, action); }
void qdr_core_remove_next_hop(qdr_core_t *core, int router_maskbit) { qdr_action_t *action = qdr_action(qdr_remove_next_hop_CT, "remove_next_hop"); action->args.route_table.router_maskbit = router_maskbit; qdr_action_enqueue(core, action); }
void qdr_core_del_router(qdr_core_t *core, int router_maskbit) { qdr_action_t *action = qdr_action(qdr_del_router_CT, "del_router"); action->args.route_table.router_maskbit = router_maskbit; qdr_action_enqueue(core, action); }