?? lsr_queue.c,v
字號:
head 1.1;
access;
symbols;
locks
dls:1.1; strict;
comment @ * @;
1.1
date 97.09.21.19.28.38; author dls; state Dist;
branches;
next ;
desc
@@
1.1
log
@pre-3e code
@
text
@/* lsr_queue.c - lsr_queue */
#include <conf.h>
#include <kernel.h>
#include <network.h>
#include <ospf.h>
/*------------------------------------------------------------------------
* lsr_queue - generate Link State Request packets
*------------------------------------------------------------------------
*/
int lsr_queue(pif, pnb, pepin)
struct ospf_if *pif;
struct ospf_nb *pnb;
struct ep *pepin;
{
struct ep *pep = 0, *lsr_add();
struct ip *pipin = (struct ip *)pepin->ep_data;
struct ospf *poin = (struct ospf *)pipin->ip_data;
struct ospf_dd *pdd = (struct ospf_dd *)poin->ospf_data;
struct ospf_lss *plss;
struct ospf_db *pdb, *db_lookup();
int i, nlss;
kprintf("lsrq ospf_len %d MINDDLEN %d LSSHDRLEN %d\n", poin->ospf_len,
MINDDLEN, LSSHDRLEN);
nlss = (poin->ospf_len - MINDDLEN) / LSSHDRLEN;
plss = pdd->dd_lss;
kprintf("lsr_queue nlss %d\n", nlss);
for (i=0; i<nlss; ++i, ++plss) {
pdb = db_lookup(pif->if_area, plss->lss_type,
plss->lss_lsid);
kprintf("lsr_q i %d pdb %X\n", i, pdb);
if (pdb == 0)
pep = lsr_add(pif, plss, pep);
/* if plss newer, pep = lsr_add(pif, plss, pep); */
}
if (pep && enq(pnb->nb_lsrl, pep, 0) < 0)
freebuf(pep);
lsr_xmit(pif, pnb);
}
@
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -