bgp使用tcp連接,每個(gè)bgp實(shí)例自身是peer的一個(gè)tcp server端,同時(shí)也是peer的tcp client端。
1、在bgp_create之后都建立自己的socket服務(wù)端開(kāi)始監(jiān)聽(tīng)179端口:
1 bgp = bgp_create(as, name); 2 bgp_router_id_set(bgp, &router_id_zebra); 3 *bgp_val = bgp; 4 5 /* Create BGP server socket, if first instance. */ 6 if (list_isempty(bm->bgp) 7 && !bgp_option_check(BGP_OPT_NO_LISTEN)) { 8 if (bgp_socket(bm->port, bm->address) < 0) return BGP_ERR_INVALID_VALUE; 9 }10 11 listnode_add(bm->bgp, bgp);
bgp_socket里完成server socket的創(chuàng)建與監(jiān)聽(tīng)。