# Qpid Dispatch TODO List Beyond this simple laundry list, you can find the list of bugs and enhancements at the [Apache Qpid JIRA instance](http://issues.apache.org/jira/browse/QPID) - Router Mode - Stand-Alone-Router - Does not participate in routing protocol, does not permit inter-router links, acts as a normal interior-router otherwise. - Interior-Router - Participates in the routing protocol - Edge-Concentrator - Does not participate in routing protocol, requires uplink connection(s) This mode should be used when Dispatch is integrated into an endpoint application or when it is acting as a connection concentrator. Proxy and access-protocol functions will be available in this mode. - Connection Annotation: - Type: Inter-router, uplink, endpoint, etc. This formal annotation can be accessed internally by the connection handlers to guide Dispatch's handling of new connections. - Weight-{in,out}: Weight/Cost metrics for inter-router links - Statistics for Instrumentation: - Link . delivery count {unsettled, pre-settled} . deliveries {accepted, rejected, released, modified} . octets of delivery {accepted, rejected, released, modified} . flow frame count . disposition frame count {forward, backward} - Address . deliveries {ingress, egress, transit} . octets of delivery {ingress, egress, transit} - Infrastructure - Router_Link - Buffer and Iterator for a copy of the link's target address (for use as an address for messages with no 'to' field). - Router Event Queue - Event queue to feed alerts to the Python router code. Neighbor-link-loss is a valuable event because it accelerates the detection of topology change. - All PyRouter stimulus through a work queue. - Router Code Updates . Report address mappings to routers . Generate RA immediately after updating routing tables . Generate unsolicited updates for mobile addresses? - Expose idle-timeout/keepalive on connectors and listeners - Major Roadmap Features - Security Policy Enforcement - Proxy (Translation Node) Capability - Address Provisioning with variable semantics - Link Routing - Management, Instrumentation, and Accounting - Link Cost - Area Routing ## Link routing Link routing occurs when a new link is attached to the router across one of its AMQP connections. It is done based on the `target.address` field of an inbound link and the `source.address` field of an outbound link. Link routing uses the same routing table that message routing uses. The difference is that the routing occurs during the link-attach operation, and link attaches are propagated along the appropriate path to the destination. What results is a chain of links, connected end-to-end, from source to destination. It is similar to a *virtual circuit* in a telecom system. Each router in the chain holds pairs of link termini that are tied together. The router then simply exchanges all deliveries, delivery state changes, and link state changes between the two termini. The endpoints that use the link chain do not see any difference in behavior between a link chain and a single point-to-point link. All of the features available in the link protocol (flow control, transactional delivery, etc.) are available over a routed link-chain.