wiki:Internal/SystemPrototyping/Projects/ClickRouter
close Warning: Can't synchronize with repository "(default)" ("(default)" is not readable or not a Git repository.). Look in the Trac log for more information.

Version 1 (modified by nkiran, 11 years ago) ( diff )

--

Click-based MobilityFirst Router

0. Requirements

  • Software prototype with reference implementations of dynamic GNRS resolution, hop-by-hop block transfer, storage aware routing (GSTAR)
  • Reference implementation/handling of network layer header with service identifier, 160-bit src/dst GUID, src/dst NA(s) and extensible headers for service options processing
  • Multicast and anycast forwarding implemented using GNRS maintained membership and routing state from GSTAR
  • Configuration and parameter tuning for router roles: core, access

1. Design

Figure below outlines the packet-processing pipeline architecture. The pipeline shows two main paths: data and control. The control path implements GSTAR intra-domain routing control protocol including: neighbor discovery, link quality estimation, link-state flooding, and pair-wise DTN state exchange (TBC). The control path also computes the forwarding table entries using a hybrid periodic and on-demand basis. The data path handles the forwarding functions for MobilityFirst data packets, including: transit buffers, network-address resolution, service classification, packet cloning (multicast, for example), compute-plane handoffs, and hold buffers (for temp. storage). Each function is modularized as a Click element for easy construction of custom roles such as a that of a core or an access router. The architecture supports variable number of input and output ports/interfaces (as long as the processing hardware resources are scaled appropriately) that can be easily aggregated for data/control path processing through elements available with the core distribution of the Click modular router.

    PKT PROCESSING OVERVIEW
    +++++++++++++++++++++++
                                                     ___________
                                                    |           |
                                                 -->| Routing X |---
                                               /    |___________|    \
                                              /               |       \
                                             /       _________|_       \  
                                 ctrl. pkt  /       |         | |       \ ctrl. pkt   
                                   -------------- ->|  GSTAR  | |--------------
                                 /                  |_________|_|               \
    in                          /                          |  |                  \                            out
 _________      __________     /                  _________v__v__                 \      ___________      _________
|         |    |          |   /                  |               |                 \ -->|           |    |         |
|Device(s)| -> |Classifier| ->                   | Forward Table |                      | Scheduler | -> |Device(s)|
|_________|    |__________|   \                  |_______________|                 / -->|___________|    |_________|
                               \                        ^  |                      /        
                                \               ________|__v______               /
                                 \             |                  |             / 
                                   ----------> |  Data pkt proc.  | -----------
                                  data pkt     |__________________|      data pkt           
                                                     
                                                    

    DATA PATH
    +++++++++

                                 _ _ _ _                                  
                               (         )     ______________       
                              (   GNRS    )   |              |      
                               ( _ _ _ _ )    | Forward  LUT |      
                                   ^ |        |______________|      
                       GUID lookup | |              ^  |               
           ____________        ____|_v__      ______|__v___         ___________    
          |            |      |         |    |             |forward|           |
 data pkt |    Hop     |chunk | Network |    |  Next-Hop   |-----> |    Hop    | data pkt
    ----->| Aggregator | -->  |  Binder | -> |   Lookup    |       | Segmentor | -----> to out port
          |____________|      |_________|    |_____________|----.  |___________|
                                  ^                             |
                                  |                             |store
                                  |                         ____v______
                                  | rebind after timeout   |           |
                                  . ---------------------- |Chunk Store|
                                                           |___________|

                                                                                                                              
                                                               
                                                               
    GSTAR CONTROL PATH
    ++++++++++++++++++   




                         lnk. prb  ____________   lnk prb
                          + ack   |            |   + ack
                          ------->|  Link Est. |------           
                        /         |____________|       \
                       /           ____________         \
      ctrl. pkt       /  lsa pkt  |            | lsa pkt \  ctrl. pkt   
    ----------------------------->|  LS Rtg.   |-----------------------> to out port
                      \           |____________|         /
                       \           ____________         /
                        \         |            |       /
                          ------->|  DTN Rtg.  |------ 
                       d-lsa pkts |____________| d-lsa pkts



                      ____________      ____________  Periodic  _____________
                     |            |    |            | Updates  |             |
                     |Neighbor Tbl|    | Routing Tbl|--------> | Forward LUT |
                     |____________|    |____________|          |_____________|


Figure 1: Main components of the Click-based MobilityFirst router

1.1. Hop-by-Hop

Relevant Elements:

1.2. Name Resolution

Relevant Elements:

1.3. Next-Hop Lookup & Store/Forward

Relevant Elements:

1.4. GSTAR

Relevant Elements:

2. Message Types and Formats

Relevant Files:

3. Running the Router

3.1. Scripts

To start up the basic router run the following:

> ./init_rtr.sh my_GUID topo_file oml_conf_file core_dev core_dev_IP resolve

where:
#parameters to this script
#1. my_GUID -  GUID of router
#2. topo_file - GUID-based topology file
#3. oml_conf_file - OML configuration for monitoring
#4. core_dev - name of interface towards backhaul/core
#5. core_dev_IP - IP assoc with core interface
#6. resolve - use gnrs resolution or not (true|false)

Relevant files:

3.2. Click Configurations

Relevant Files:

3.3. In-Click Topology Control

Relevant Elements:

Relevant Files:

4. Performance

5. Known Issues

6. Release Notes

Note: See TracWiki for help on using the wiki.