<!--*-markdown-*-
;; Licensed to the Apache Software Foundation (ASF) under one
;; or more contributor license agreements.  See the NOTICE file
;; distributed with this work for additional information
;; regarding copyright ownership.  The ASF licenses this file
;; to you under the Apache License, Version 2.0 (the
;; "License"); you may not use this file except in compliance
;; with the License.  You may obtain a copy of the License at
;; 
;;   http://www.apache.org/licenses/LICENSE-2.0
;; 
;; Unless required by applicable law or agreed to in writing,
;; software distributed under the License is distributed on an
;; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
;; KIND, either express or implied.  See the License for the
;; specific language governing permissions and limitations
;; under the License.
-->

# Qpid Dispatch TODO List

Beyond this simple laundry list, you can find the list of bugs and
enhancements at the [Qpid Dispatch JIRA instance](http://issues.apache.org/jira/browse/DISPATCH)

- 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
  - Management, Instrumentation, and Accounting
  - Link Cost
  - Area Routing

