BGP socket在quagga中启动的流程

0 首先保证bgp进程联络上zebra,

bgp_init->

  /* Init zebra. */
  bgp_zebra_init ();

->  zclient_event (ZCLIENT_SCHEDULE, zclient);

/* Make connection to zebra daemon. */
int
zclient_start (struct zclient *zclient)



1 zebra 下发router bgp命令

2 bgpd接收 bgp_get

3 以下bgp_get的处理


  /* Create BGP server socket, if first instance.  */
  if (list_isempty(bm->bgp))
    {
      if (bgp_socket (bm->port, bm->address) < 0)
    return BGP_ERR_INVALID_VALUE;
    }


bgp_listener创建listener socket负责监听



你可能感兴趣的:(BGP socket在quagga中启动的流程)