**如下
int
isis_receive (struct thread *thread)
主要流程:
1 收包 rx,呼叫註冊的處理函式, 例如isis*_receive_*_bcast/p2p
2 處理報文 handle
3 處理下乙個 read_on
處理報文的邏輯如下,
static int
isis_handle_pdu (struct isis_circuit *circuit, u_char * ssnpa)
呼叫關係
(gdb) bt
#0 isis_handle_pdu (circuit=0x7ffff427c8c8, ssnpa=0x7ffff4582b60 "") at isis_pdu.c:1654
#1 0x00007ffff42ce5a2 in isis_receive (thread=0x7ffff4582cc0) at isis_pdu.c:1796
#2 0x00007ffff42f24ef in thread_call (thread=0x7ffff4582cc0) at thread.c:1177
#3 0x00007ffff42bda3d in main (argc=5, argv=0x662700, envp=0x6460b0) at isis_main.c:353
#4 0x00007ffff7a0708f in ns3::dcemanager::dostartprocess (context=0x677f40) at ../model/dce-manager.cc:283
#5 0x00007ffff7a907fc in ns3::taskmanager::trampoline (context=0x662900) at ../model/task-manager.cc:274
#6 0x00007ffff7a8c7d7 in ns3::pthreadfibermanager::run (arg=0x678230) 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)
主要結論:
對於ppp網路,並不追究snpa的值。
軟中斷和收包流程
open softirq建立型別與handler的對應關係。void open softirq int nr,void action struct softirq action void data netif rx將收到的包放到softnet data的input pkt queue中,之後呼叫ne...
jrtplib V3 11 1 收包流程
最近在看 jrtplib的收包流程,看了這篇文章 jrtplib接收資料報流程 只是用的庫老了點 v3.7 的,寫的也太長了,不夠簡練,於是自己寫乙份 v3.11.1的簡練點的收包流程說明,撿重點,無關的流程略過。rtp包的接收入口函式 int rtpsession poll 流程 一 的剖析 說明...
linux e1000e收包流程解析
收到報文 e1000e poll skb變數pfmemalloc的含義 ret pci register driver e1000 driver pci driver e1000 driver.probe e1000 probe e1000 probe struct pci dev pdev,con...