zebra之间的通讯


Breakpoint 1, zclient_start (zclient=0x7ffff0235608) at zclient.c:351
351      if (zclient_debug)
(gdb) bt
#0  zclient_start (zclient=0x7ffff0235608) at zclient.c:351
#1  0x00007fffd3da0e4f in zclient_connect (t=0x7ffff0288b10) at zclient.c:419
#2  0x00007fffd3d8874d in thread_call (thread=0x7ffff0288b10) at thread.c:1271
#3  0x00007fffd3d201c6 in main (argc=5, argv=0x678d10) at ospf_main.c:347
#4  0x00007ffff7a0708f in ns3::DceManager::DoStartProcess (context=0x82f4d0) at ../model/dce-manager.cc:283
#5  0x00007ffff7a907fc in ns3::TaskManager::Trampoline (context=0x699780) at ../model/task-manager.cc:274
#6  0x00007ffff7a8c7d7 in ns3::PthreadFiberManager::Run (arg=0x82f7c0) at ../model/pthread-fiber-manager.cc:402
#7  0x000000318b2079d1 in start_thread () from /lib64/libpthread.so.0
#8  0x000000318a6e88fd in clone () from /lib64/libc.so.6
(gdb)


hello报文

(gdb) c
Continuing.
[New Thread 0x7ffff019b700 (LWP 32009)]
[Switching to Thread 0x7ffff019b700 (LWP 32009)]

Breakpoint 1, zebra_hello_send (zclient=0x7ffff0148608) at zclient.c:331
331      if (zclient->redist_default)
(gdb) b zread_hello
Breakpoint 2 at 0x7ffff09c7ec1: file zserv.c, line 1402.
(gdb) c
Continuing.
[Switching to Thread 0x7ffff071b700 (LWP 31998)]

Breakpoint 2, zread_hello (client=0x7ffff06639d8) at zserv.c:1402
1402      proto = stream_getc (client->ibuf);
(gdb)

client发送ZEBRA_ROUTER_ID_ADD

serv回送ZEBRA_ROUTER_ID_UPDATE

client接收并处理之,处理函数 ospf_router_id_update_zebra


接着请求ZEBRA_INTERFACE_ADD

serv回复 同样,


zclient的处理回复在zclient_read

serv的处理回复在zebra_client_read


接下来的消息

ZEBRA_REDISTRIBUTE_ADD

ZEBRA_REDISTRIBUTE_DEFAULT_ADD


重分布请求

zebra_redistribute Ospf可能没有


Breakpoint 6, zebra_redistribute (client=0x7ffff04dd9d8, type=2) at redistribute.c:148
148      table = vrf_table (AFI_IP, SAFI_UNICAST, 0);
(gdb) bt
#0  zebra_redistribute (client=0x7ffff04dd9d8, type=2) at redistribute.c:148
#1  0x00007ffff09d5fec in zebra_redistribute_add (command=11, client=0x7ffff04dd9d8, length=1) at redistribute.c:290
#2  0x00007ffff09c866a in zebra_client_read (thread=0x7ffff0596b00) at zserv.c:1630
#3  0x00007ffff0a0a541 in thread_call (thread=0x7ffff0596b00) at thread.c:1271
#4  0x00007ffff09c98b3 in main (argc=5, argv=0x717ca0) at main.c:426
#5  0x00007ffff7a0708f in ns3::DceManager::DoStartProcess (context=0x82bea0) at ../model/dce-manager.cc:283
#6  0x00007ffff7a907fc in ns3::TaskManager::Trampoline (context=0x82c080) at ../model/task-manager.cc:274
#7  0x00007ffff7a8c7d7 in ns3::PthreadFiberManager::Run (arg=0x82c950) at ../model/pthread-fiber-manager.cc:402
#8  0x000000318b2079d1 in start_thread () from /lib64/libpthread.so.0
#9  0x000000318a6e88fd in clone () from /lib64/libc.so.6
(gdb)






你可能感兴趣的:(zebra之间的通讯)