Daemon Startup and Shutdown

Upon startup, the daemon executes the following tasks:

For introductory information on libssd, see Route Manager Application. For introductory information on KCOM, see Using the GENCFG/SSRB Library.

To shut down, the daemon leaves the ssd state (next hops and routes) intact and exits. The exit has no effect on the active control plane, and the Routing Protocol daemon (rpd) removes the routes later.

Nexthop Add Requests and the Packet Destination Flag

The daemon distributes egress packets to the MS PIC to either control or data cores according to the DATA field in the packet cookie. This occurs in the function msprsmd_ssd_add_nexthop().

The function ssd_request_nexthop_add() takes an ssd_nh_add_parms structure, whose rnhm_dst_flag field specifies whether to send to a control or data core. This field defaults to DATA:

   struct ssd_nh_add_parms {
       ifl_idx_t               ifl;        /* ifl interface for the  next hop */
       struct ssd_nh_opq_data  opq_data;   /* Opaque data to be added to the next hop */
       u_int8_t		       dst_flag;   /* SSD_NEXTHOP_DST_FLAG_CTRL or
                                              SSD_NEXTHOP_DST_FLAG_DATA */
       u_int8_t                pkt_dist_type; /* Round-robin / flow affinity */
   };

The code in msprsmd_ssd_add_nexthop() initially resets the flag to CONTROL:

    struct ssd_nh_add_parms parms;
    int error = 0;

    /*
     * Fill in ssd_nh_add_parms
     */
    memset(&parms, 0, sizeof(struct ssd_nh_add_parms));
    msprsmd_kcom_ifl_by_idx(msprsmd_if, &parms.ifl);
    parms.dst_flag = SSD_NEXTHOP_DST_FLAG_CTRL;
    parms.pkt_dist_type = SSD_NEXTHOP_PKT_DIST_FA;

    /*
     * Send the request
     */
    error = ssd_request_nexthop_add(fd, SSD_CLIENT_CTX(msprsmd_if),
                                    &parms, SSD_CLIENT_CTX(msprsmd_if));

...

Interface Activation and Deactivation


2007-2009 Juniper Networks, Inc. All rights reserved. The information contained herein is confidential information of Juniper Networks, Inc., and may not be used, disclosed, distributed, modified, or copied without the prior written consent of Juniper Networks, Inc. in an express license. This information is subject to change by Juniper Networks, Inc. Juniper Networks, the Juniper Networks logo, and JUNOS are registered trademarks of Juniper Networks, Inc. in the United States and other countries. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners.
Generated on Sun May 30 20:26:47 2010 for Juniper Networks Partner Solution Development Platform JUNOS SDK 10.2R1 by Doxygen 1.4.5