You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2016/03/15 19:32:42 UTC
[2/4] qpid-dispatch git commit: DISPATCH-179 - Significant update to
the management model for routes. Removed the singular "route" configuration
and replaced it with three distinct object types: address, linkRoute,
and autoLink.
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/ab2734f9/src/router_core/route_control.c
----------------------------------------------------------------------
diff --git a/src/router_core/route_control.c b/src/router_core/route_control.c
index 96b5ef9..4e1c57c 100644
--- a/src/router_core/route_control.c
+++ b/src/router_core/route_control.c
@@ -20,85 +20,11 @@
#include "route_control.h"
#include <stdio.h>
-ALLOC_DEFINE(qdr_route_active_t);
-ALLOC_DEFINE(qdr_route_config_t);
+ALLOC_DEFINE(qdr_link_route_t);
+ALLOC_DEFINE(qdr_auto_link_t);
ALLOC_DEFINE(qdr_conn_identifier_t);
-
-static const char *qdr_configure_address_prefix_CT(qdr_core_t *core,
- qd_parsed_field_t *addr_field,
- char cls,
- qd_address_treatment_t treatment,
- qdr_address_config_t **_addr)
-{
- if (!addr_field)
- return "Missing address field";
-
- qd_field_iterator_t *iter = qd_parse_raw(addr_field);
- qd_address_iterator_override_prefix(iter, cls);
- qd_address_iterator_reset_view(iter, ITER_VIEW_ADDRESS_HASH);
-
- qdr_address_config_t *addr = 0;
- qd_hash_retrieve(core->addr_hash, iter, (void**) &addr);
- if (addr)
- return "Address prefix conflicts with existing prefix";
-
- addr = new_qdr_address_config_t();
- DEQ_ITEM_INIT(addr);
- addr->treatment = treatment;
-
- if (!!addr) {
- qd_field_iterator_reset(iter);
- qd_hash_insert(core->addr_hash, iter, addr, &addr->hash_handle);
- DEQ_INSERT_TAIL(core->addr_config, addr);
- }
-
- *_addr = addr;
- return 0;
-}
-
-
-static const char *qdr_configure_address_CT(qdr_core_t *core,
- qd_parsed_field_t *addr_field,
- char cls,
- qd_address_treatment_t treatment,
- qdr_address_t **_addr)
-{
- if (!addr_field)
- return "Missing address field";
-
- qd_field_iterator_t *iter = qd_parse_raw(addr_field);
- qd_address_iterator_override_prefix(iter, cls);
- qd_address_iterator_reset_view(iter, ITER_VIEW_ADDRESS_HASH);
-
- qdr_address_t *addr = 0;
- qd_hash_retrieve(core->addr_hash, iter, (void**) &addr);
- if (addr)
- return "Address conflicts with existing address";
-
- addr = qdr_address_CT(core, treatment);
-
- if (!!addr) {
- qd_field_iterator_reset(iter);
- qd_hash_insert(core->addr_hash, iter, addr, &addr->hash_handle);
- DEQ_INSERT_TAIL(core->addrs, addr);
- }
-
- *_addr = addr;
- return 0;
-}
-
-
-static void qdr_route_free_CT(qdr_core_t *core, qdr_route_config_t *route)
-{
- if (route->name)
- free(route->name);
- // TODO - Clean up address records
- free_qdr_route_config_t(route);
-}
-
-
static qdr_conn_identifier_t *qdr_route_declare_id_CT(qdr_core_t *core,
qd_field_iterator_t *conn_id,
bool is_container)
@@ -119,207 +45,138 @@ static qdr_conn_identifier_t *qdr_route_declare_id_CT(qdr_core_t *core,
return cid;
}
+
static void qdr_route_check_id_for_deletion_CT(qdr_core_t *core, qdr_conn_identifier_t *cid)
{
//
// If this connection identifier has no open connection and no referencing routes,
// it can safely be deleted and removed from the hash index.
//
- if (cid->open_connection == 0 && DEQ_IS_EMPTY(cid->active_refs)) {
+ if (cid->open_connection == 0 && DEQ_IS_EMPTY(cid->link_route_refs) && DEQ_IS_EMPTY(cid->auto_link_refs)) {
qd_hash_remove_by_handle(core->conn_id_hash, cid->hash_handle);
free_qdr_conn_identifier_t(cid);
}
}
-static void qdr_route_log_CT(qdr_core_t *core, const char *text, qdr_route_config_t *route, qdr_connection_t *conn)
+static void qdr_route_log_CT(qdr_core_t *core, const char *text, const char *name, uint64_t id, qdr_connection_t *conn)
{
const char *key = (const char*) qd_hash_key_by_handle(conn->conn_id->hash_handle);
char id_string[64];
- const char *name = route->name ? route->name : id_string;
+ const char *log_name = name ? name : id_string;
- if (!route->name)
- snprintf(id_string, 64, "%ld", route->identity);
+ if (!name)
+ snprintf(id_string, 64, "%ld", id);
- qd_log(core->log, QD_LOG_INFO, "Route '%s' %s on %s %s",
- name, text, key[0] == 'L' ? "connection" : "container", &key[1]);
+ qd_log(core->log, QD_LOG_INFO, "%s '%s' on %s %s",
+ log_name, text, key[0] == 'L' ? "connection" : "container", &key[1]);
}
-static void qdr_route_activate_CT(qdr_core_t *core, qdr_route_active_t *active, qdr_connection_t *conn)
+static void qdr_link_route_activate_CT(qdr_core_t *core, qdr_link_route_t *lr, qdr_connection_t *conn)
{
- qdr_route_config_t *route = active->config;
- const char *key;
+ const char *key;
- qdr_route_log_CT(core, "Activated", route, conn);
+ qdr_route_log_CT(core, "Activated Link Route", lr->name, lr->identity, conn);
- if (route->treatment == QD_TREATMENT_LINK_BALANCED) {
- //
- // Activate the address(es) for link-routed destinations. If this is the first
- // activation for this address, notify the router module of the added address.
- //
- if (route->out_addr) {
- qdr_add_connection_ref(&route->out_addr->conns, conn);
- if (DEQ_SIZE(route->out_addr->conns) == 1) {
- key = (const char*) qd_hash_key_by_handle(route->out_addr->hash_handle);
- if (key)
- qdr_post_mobile_added_CT(core, key);
- }
- }
-
- if (route->in_addr) {
- qdr_add_connection_ref(&route->in_addr->conns, conn);
- if (DEQ_SIZE(route->in_addr->conns) == 1) {
- key = (const char*) qd_hash_key_by_handle(route->in_addr->hash_handle);
- if (key)
- qdr_post_mobile_added_CT(core, key);
- }
+ //
+ // Activate the address for link-routed destinations. If this is the first
+ // activation for this address, notify the router module of the added address.
+ //
+ if (lr->addr) {
+ qdr_add_connection_ref(&lr->addr->conns, conn);
+ if (DEQ_SIZE(lr->addr->conns) == 1) {
+ key = (const char*) qd_hash_key_by_handle(lr->addr->hash_handle);
+ if (key)
+ qdr_post_mobile_added_CT(core, key);
}
}
}
-static void qdr_route_deactivate_CT(qdr_core_t *core, qdr_route_active_t *active, qdr_connection_t *conn)
+static void qdr_link_route_deactivate_CT(qdr_core_t *core, qdr_link_route_t *lr, qdr_connection_t *conn)
{
- qdr_route_config_t *route = active->config;
- const char *key;
+ const char *key;
- qdr_route_log_CT(core, "Deactivated", route, conn);
+ qdr_route_log_CT(core, "Deactivated Link Route", lr->name, lr->identity, conn);
- if (route->treatment == QD_TREATMENT_LINK_BALANCED) {
- //
- // Deactivate the address(es) for link-routed destinations.
- //
- if (route->out_addr) {
- qdr_del_connection_ref(&route->out_addr->conns, conn);
- if (DEQ_IS_EMPTY(route->out_addr->conns)) {
- key = (const char*) qd_hash_key_by_handle(route->out_addr->hash_handle);
- if (key)
- qdr_post_mobile_removed_CT(core, key);
- }
- }
-
- if (route->in_addr) {
- qdr_del_connection_ref(&route->in_addr->conns, conn);
- if (DEQ_IS_EMPTY(route->in_addr->conns)) {
- key = (const char*) qd_hash_key_by_handle(route->in_addr->hash_handle);
- if (key)
- qdr_post_mobile_removed_CT(core, key);
- }
+ //
+ // Deactivate the address(es) for link-routed destinations.
+ //
+ if (lr->addr) {
+ qdr_del_connection_ref(&lr->addr->conns, conn);
+ if (DEQ_IS_EMPTY(lr->addr->conns)) {
+ key = (const char*) qd_hash_key_by_handle(lr->addr->hash_handle);
+ if (key)
+ qdr_post_mobile_removed_CT(core, key);
}
}
}
-const char *qdr_route_create_CT(qdr_core_t *core,
- qd_field_iterator_t *name,
- qdr_route_path_t path,
- qd_address_treatment_t treatment,
- qd_parsed_field_t *addr_field,
- qd_parsed_field_t *route_addr_field,
- qdr_route_config_t **_route)
+void qdr_route_add_link_route_CT(qdr_core_t *core,
+ qd_field_iterator_t *name,
+ qd_parsed_field_t *prefix_field,
+ qd_parsed_field_t *conn_id,
+ bool is_container,
+ qd_address_treatment_t treatment,
+ qd_direction_t dir)
{
- const char *error = 0;
-
- qdr_route_config_t *route = new_qdr_route_config_t();
- ZERO(route);
-
- if (name)
- route->name = (char*) qd_field_iterator_copy(name);
- route->identity = qdr_identifier(core);
- route->path = path;
- route->treatment = treatment;
+ qdr_link_route_t *lr = new_qdr_link_route_t();
//
- // Direct message routing - Create a address prefix with the provided treatment.
+ // Set up the link_route structure
//
- if (path == QDR_ROUTE_PATH_DIRECT)
- error = qdr_configure_address_prefix_CT(core, addr_field, 'Z', treatment, &route->addr_config);
+ ZERO(lr);
+ lr->identity = qdr_identifier(core);
+ lr->name = name ? (char*) qd_field_iterator_copy(name) : 0;
+ lr->dir = dir;
+ lr->treatment = treatment;
//
- // Link routing - Create inbound and outbound link-route addresses based on the path.
+ // Find or create an address for link-attach routing
//
- else if (treatment == QD_TREATMENT_LINK_BALANCED) {
- if (path == QDR_ROUTE_PATH_SOURCE || path == QDR_ROUTE_PATH_WAYPOINT)
- error = qdr_configure_address_CT(core, addr_field, 'D', treatment, &route->out_addr);
- if (path == QDR_ROUTE_PATH_SINK || path == QDR_ROUTE_PATH_WAYPOINT)
- error = qdr_configure_address_CT(core, addr_field, 'C', treatment, &route->in_addr);
+ qd_field_iterator_t *iter = qd_parse_raw(prefix_field);
+ qd_address_iterator_reset_view(iter, ITER_VIEW_ADDRESS_HASH);
+ qd_address_iterator_override_prefix(iter, dir == QD_INCOMING ? 'C' : 'D');
+
+ qd_hash_retrieve(core->addr_hash, iter, (void*) &lr->addr);
+ if (!lr->addr) {
+ lr->addr = qdr_address_CT(core, treatment);
+ DEQ_INSERT_TAIL(core->addrs, lr->addr);
+ qd_hash_insert(core->addr_hash, iter, lr->addr, &lr->addr->hash_handle);
}
//
- // Indirect message routing cases - Create a normal address with the provided treatment.
+ // Find or create a connection identifier structure for this link route
//
- else {
- error = qdr_configure_address_CT(core, addr_field, '\0', treatment, &route->addr);
- }
-
- if (error)
- qdr_route_free_CT(core, route);
- else {
- DEQ_INSERT_TAIL(core->route_config, route);
- *_route = route;
+ if (conn_id) {
+ lr->conn_id = qdr_route_declare_id_CT(core, qd_parse_raw(conn_id), is_container);
+ DEQ_INSERT_TAIL_N(REF, lr->conn_id->link_route_refs, lr);
+ if (lr->conn_id->open_connection)
+ qdr_link_route_activate_CT(core, lr, lr->conn_id->open_connection);
}
-
- return error;
-}
-
-
-void qdr_route_delete_CT(qdr_core_t *core, qdr_route_config_t *route)
-{
}
-void qdr_route_connection_add_CT(qdr_core_t *core,
- qdr_route_config_t *route,
- qd_parsed_field_t *conn_id,
- bool is_container)
+void qdr_route_del_link_route_CT(qdr_core_t *core)
{
- //
- // Create a new active record for this route+connection and get a connection identifier
- // record (find and existing one or create a new one).
- //
- qdr_route_active_t *active = new_qdr_route_active_t();
- qdr_conn_identifier_t *cid = qdr_route_declare_id_CT(core, qd_parse_raw(conn_id), is_container);
-
- //
- // Initialize the active record in the DOWN state.
- //
- DEQ_ITEM_INIT(active);
- DEQ_ITEM_INIT_N(REF, active);
- active->in_state = QDR_ROUTE_STATE_DOWN;
- active->out_state = QDR_ROUTE_STATE_DOWN;
- active->in_link = 0;
- active->out_link = 0;
-
- //
- // Create the linkages between the route-config, active, and connection-identifier.
- //
- active->config = route;
- active->conn_id = cid;
-
- DEQ_INSERT_TAIL(route->active_list, active);
- DEQ_INSERT_TAIL_N(REF, cid->active_refs, active);
-
- //
- // If the connection identifier represents an already open connection, activate the route.
- //
- if (cid->open_connection)
- qdr_route_activate_CT(core, active, cid->open_connection);
}
-void qdr_route_connection_delete_CT(qdr_core_t *core,
- qdr_route_config_t *route,
- qd_parsed_field_t *conn_id,
- bool is_container)
+void qdr_route_add_auto_link_CT(qdr_core_t *core,
+ qd_field_iterator_t *name,
+ qd_parsed_field_t *addr_field,
+ qd_address_treatment_t treatment,
+ qd_direction_t dir,
+ qd_parsed_field_t *phase_field,
+ qd_parsed_field_t *container_id_field,
+ qd_parsed_field_t *conn_name_field)
{
}
-void qdr_route_connection_kill_CT(qdr_core_t *core,
- qdr_route_config_t *route,
- qd_parsed_field_t *conn_id,
- bool is_container)
+void qdr_route_del_auto_link_CT(qdr_core_t *core, qdr_auto_link_t *autolink)
{
}
@@ -339,12 +196,21 @@ void qdr_route_connection_opened_CT(qdr_core_t *core,
conn->conn_id = cid;
//
- // Activate all routes associated with this remote container.
+ // Activate all link-routes associated with this remote container.
+ //
+ qdr_link_route_t *lr = DEQ_HEAD(cid->link_route_refs);
+ while (lr) {
+ qdr_link_route_activate_CT(core, lr, conn);
+ lr = DEQ_NEXT_N(REF, lr);
+ }
+
+ //
+ // Activate all auto-links associated with this remote container.
//
- qdr_route_active_t *active = DEQ_HEAD(cid->active_refs);
- while (active) {
- qdr_route_activate_CT(core, active, conn);
- active = DEQ_NEXT_N(REF, active);
+ qdr_auto_link_t *al = DEQ_HEAD(cid->auto_link_refs);
+ while (al) {
+ //qdr_link_route_activate_CT(core, lr, conn);
+ al = DEQ_NEXT_N(REF, al);
}
}
@@ -357,12 +223,21 @@ void qdr_route_connection_closed_CT(qdr_core_t *core, qdr_connection_t *conn)
qdr_conn_identifier_t *cid = conn->conn_id;
if (cid) {
//
- // De-activate all routes associated with this remote container.
+ // Deactivate all link-routes associated with this remote container.
+ //
+ qdr_link_route_t *lr = DEQ_HEAD(cid->link_route_refs);
+ while (lr) {
+ qdr_link_route_deactivate_CT(core, lr, conn);
+ lr = DEQ_NEXT_N(REF, lr);
+ }
+
+ //
+ // Deactivate all auto-links associated with this remote container.
//
- qdr_route_active_t *active = DEQ_HEAD(cid->active_refs);
- while (active) {
- qdr_route_deactivate_CT(core, active, conn);
- active = DEQ_NEXT_N(REF, active);
+ qdr_auto_link_t *al = DEQ_HEAD(cid->auto_link_refs);
+ while (al) {
+ //qdr_link_route_deactivate_CT(core, lr, conn);
+ al = DEQ_NEXT_N(REF, al);
}
cid->open_connection = 0;
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/ab2734f9/src/router_core/route_control.h
----------------------------------------------------------------------
diff --git a/src/router_core/route_control.h b/src/router_core/route_control.h
index 53e1758..5fe8202 100644
--- a/src/router_core/route_control.h
+++ b/src/router_core/route_control.h
@@ -21,30 +21,26 @@
#include "router_core_private.h"
-const char *qdr_route_create_CT(qdr_core_t *core,
- qd_field_iterator_t *name,
- qdr_route_path_t path,
- qd_address_treatment_t treatment,
- qd_parsed_field_t *addr_field,
- qd_parsed_field_t *route_addr_field,
- qdr_route_config_t **route);
-
-void qdr_route_delete_CT(qdr_core_t *core, qdr_route_config_t *route);
+void qdr_route_add_link_route_CT(qdr_core_t *core,
+ qd_field_iterator_t *name,
+ qd_parsed_field_t *prefix_field,
+ qd_parsed_field_t *conn_id,
+ bool is_container,
+ qd_address_treatment_t treatment,
+ qd_direction_t dir);
-void qdr_route_connection_add_CT(qdr_core_t *core,
- qdr_route_config_t *route,
- qd_parsed_field_t *conn_id,
- bool is_container);
+void qdr_route_del_link_route_CT(qdr_core_t *core);
-void qdr_route_connection_delete_CT(qdr_core_t *core,
- qdr_route_config_t *route,
- qd_parsed_field_t *conn_id,
- bool is_container);
+void qdr_route_add_auto_link_CT(qdr_core_t *core,
+ qd_field_iterator_t *name,
+ qd_parsed_field_t *addr_field,
+ qd_address_treatment_t treatment,
+ qd_direction_t dir,
+ qd_parsed_field_t *phase_field,
+ qd_parsed_field_t *container_id_field,
+ qd_parsed_field_t *conn_name_field);
-void qdr_route_connection_kill_CT(qdr_core_t *core,
- qdr_route_config_t *route,
- qd_parsed_field_t *conn_id,
- bool is_container);
+void qdr_route_del_auto_link_CT(qdr_core_t *core, qdr_auto_link_t *autolink);
void qdr_route_connection_opened_CT(qdr_core_t *core,
qdr_connection_t *conn,
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/ab2734f9/src/router_core/router_core_private.h
----------------------------------------------------------------------
diff --git a/src/router_core/router_core_private.h b/src/router_core/router_core_private.h
index f44b1c5..c252063 100644
--- a/src/router_core/router_core_private.h
+++ b/src/router_core/router_core_private.h
@@ -31,8 +31,8 @@ typedef struct qdr_node_t qdr_node_t;
typedef struct qdr_router_ref_t qdr_router_ref_t;
typedef struct qdr_link_ref_t qdr_link_ref_t;
typedef struct qdr_forwarder_t qdr_forwarder_t;
-typedef struct qdr_route_config_t qdr_route_config_t;
-typedef struct qdr_route_active_t qdr_route_active_t;
+typedef struct qdr_link_route_t qdr_link_route_t;
+typedef struct qdr_auto_link_t qdr_auto_link_t;
typedef struct qdr_conn_identifier_t qdr_conn_identifier_t;
typedef struct qdr_connection_ref_t qdr_connection_ref_t;
@@ -316,7 +316,11 @@ void qdr_del_node_ref(qdr_router_ref_list_t *ref_list, qdr_node_t *rnode);
struct qdr_address_config_t {
DEQ_LINKS(qdr_address_config_t);
qd_hash_handle_t *hash_handle;
+ char *name;
+ uint64_t identity;
qd_address_treatment_t treatment;
+ int in_phase;
+ int out_phase;
};
ALLOC_DECLARE(qdr_address_config_t);
@@ -397,54 +401,43 @@ struct qdr_connection_t {
ALLOC_DECLARE(qdr_connection_t);
DEQ_DECLARE(qdr_connection_t, qdr_connection_list_t);
-typedef enum {
- QDR_ROUTE_PATH_DIRECT,
- QDR_ROUTE_PATH_SOURCE,
- QDR_ROUTE_PATH_SINK,
- QDR_ROUTE_PATH_WAYPOINT
-} qdr_route_path_t;
-typedef enum {
- QDR_ROUTE_STATE_DOWN,
- QDR_ROUTE_STATE_UP,
- QDR_ROUTE_STATE_QUIESCING
-} qdr_route_state_t;
-
-struct qdr_route_active_t {
- DEQ_LINKS(qdr_route_active_t);
- DEQ_LINKS_N(REF, qdr_route_active_t);
- qdr_route_config_t *config;
- qdr_conn_identifier_t *conn_id;
- qdr_route_state_t in_state;
- qdr_route_state_t out_state;
- qdr_link_t *in_link;
- qdr_link_t *out_link;
+struct qdr_link_route_t {
+ DEQ_LINKS(qdr_link_route_t);
+ DEQ_LINKS_N(REF, qdr_link_route_t);
+ uint64_t identity;
+ char *name;
+ qdr_address_t *addr;
+ qd_direction_t dir;
+ qdr_conn_identifier_t *conn_id;
+ qd_address_treatment_t treatment;
};
-ALLOC_DECLARE(qdr_route_active_t);
-DEQ_DECLARE(qdr_route_active_t, qdr_route_active_list_t);
+ALLOC_DECLARE(qdr_link_route_t);
+DEQ_DECLARE(qdr_link_route_t, qdr_link_route_list_t);
-struct qdr_route_config_t {
- DEQ_LINKS(qdr_route_config_t);
- char *name;
- uint64_t identity;
- qdr_route_path_t path;
- qdr_address_config_t *addr_config;
- qdr_address_t *addr;
- qdr_address_t *in_addr;
- qdr_address_t *out_addr;
- qd_address_treatment_t treatment;
-
- qdr_route_active_list_t active_list;
+
+struct qdr_auto_link_t {
+ DEQ_LINKS(qdr_auto_link_t);
+ DEQ_LINKS_N(REF, qdr_auto_link_t);
+ uint64_t identity;
+ char *name;
+ qdr_address_t *addr;
+ int phase;
+ qd_direction_t dir;
+ qdr_conn_identifier_t *conn_id;
+ qdr_link_t *link;
};
-ALLOC_DECLARE(qdr_route_config_t);
-DEQ_DECLARE(qdr_route_config_t, qdr_route_config_list_t);
+ALLOC_DECLARE(qdr_auto_link_t);
+DEQ_DECLARE(qdr_auto_link_t, qdr_auto_link_list_t);
+
struct qdr_conn_identifier_t {
- qd_hash_handle_t *hash_handle;
- qdr_connection_t *open_connection;
- qdr_route_active_list_t active_refs;
+ qd_hash_handle_t *hash_handle;
+ qdr_connection_t *open_connection;
+ qdr_link_route_list_t link_route_refs;
+ qdr_auto_link_list_t auto_link_refs;
};
ALLOC_DECLARE(qdr_conn_identifier_t);
@@ -463,8 +456,6 @@ struct qdr_core_t {
qdr_general_work_list_t work_list;
qd_timer_t *work_timer;
- qdr_route_config_list_t route_config;
-
qdr_connection_list_t open_connections;
qdr_link_list_t open_links;
//
@@ -505,6 +496,9 @@ struct qdr_core_t {
const char *router_id;
qdr_address_config_list_t addr_config;
+ qdr_auto_link_list_t auto_links;
+ qdr_link_route_list_t link_routes;
+ qd_hash_t *conn_id_hash;
qdr_address_list_t addrs;
qd_hash_t *addr_hash;
qdr_address_t *hello_addr;
@@ -524,7 +518,6 @@ struct qdr_core_t {
uint64_t next_identifier;
sys_mutex_t *id_lock;
- qd_hash_t *conn_id_hash;
qdr_forwarder_t *forwarders[QD_TREATMENT_LINK_BALANCED + 1];
};
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/ab2734f9/src/router_private.h
----------------------------------------------------------------------
diff --git a/src/router_private.h b/src/router_private.h
index 21497b4..533955a 100644
--- a/src/router_private.h
+++ b/src/router_private.h
@@ -38,10 +38,12 @@
qd_error_t qd_router_python_setup(qd_router_t *router);
void qd_router_python_free(qd_router_t *router);
qd_error_t qd_pyrouter_tick(qd_router_t *router);
-qd_error_t qd_router_configure_address(qd_router_t *router, qd_entity_t *entity);
+qd_error_t qd_router_configure_fixed_address(qd_router_t *router, qd_entity_t *entity);
qd_error_t qd_router_configure_waypoint(qd_router_t *router, qd_entity_t *entity);
qd_error_t qd_router_configure_lrp(qd_router_t *router, qd_entity_t *entity);
-qd_error_t qd_router_configure_route(qd_router_t *router, qd_entity_t *entity);
+qd_error_t qd_router_configure_address(qd_router_t *router, qd_entity_t *entity);
+qd_error_t qd_router_configure_link_route(qd_router_t *router, qd_entity_t *entity);
+qd_error_t qd_router_configure_auto_link(qd_router_t *router, qd_entity_t *entity);
void qd_router_configure_free(qd_router_t *router);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org