default:
gc自裡c -o ul2switch main_ul2switch.c市金 -lua -lreg -lpthread
clean:
&nb嗎短sp;rm -rf ul2switch
root@HNXS:/home/hnxs/雜新l2switch# make
系統輸出如(rú)下:gcc -o ul2switch mai少那n_ul2switch.c -lua -l市間reg -lpthread
當前目錄會(huì)多産生一個ul南拿2switch文件
root@HNXS:/home/hnxs/l2sw靜這itch# ls
main_ul2switch.c Makefile ul2sw日章itch
root@HNXS:/home/hnxs/l2switch分樹# ./ul2switch
fastU->REG Version:201808街上27,OpenBox HW Version:2020210329
fastU->Register UA能站 to FAST Kernel! Wait Reply人都......
fastU->UA->pid:3069,mid:129,Regist醫很er OK!
fastU->libua version:商窗20180827
fastU->fast_ua_recv......
從作
/*UA模塊初始化*/
ua_init(mid);
/*配置硬件默認規則,将硬件所有報文送到模塊ID為(wèi)m紙電id的進程處理*/
fast_reg_wr(FAST_ACTION_REG_ADDR吃話|FAST_DEFAULT_RULE_ADDR,ACTION_SET_M作街ID<<28|mid);
/*啟動線程接收分派給UA進程的報文*/
fast_ua_recv();
/*主進程進入暫停狀态,數據處理主要在回調函數*/
pause();
void ua_init(u8 mid)
{
int ret = 0;
/*向系統注冊,自己進程處理報文模塊ID為(w刀事èi)mid的所有報文*/
if((ret=fast_ua_init(mid,低不callback)))//UA模塊實例化(輸少對入參數1:接收模塊ID号,輸入參數2:接收報文的回調處理函數)
{
perror("fast_ua_init計服!\n");
exit (ret);//如(rú)果初始化失敗,爸算則需要打印失敗信息,并将程序結束退出!
}
}
int callback(stru玩醫ct fast_packet *pkt,in中藍t pkt_len)
{
return 0;
}
xprintf("inport:%d,dstmid:%d,le明能n:%d,dmac:%02X:%02X:%02X:%裡鐵02X:%02X:%02X,smac:%02X:%理金02X:%02X:%02X:%02X:%討遠02X\n",
pkt->um.inport,pkt->um.d用離stmid,pkt_len,pkt->data[0],pk子坐t->data[1],pkt->data[錢刀2],pkt->data[3],pkt->data[4],都行pkt->data[5],pkt->data[6],pkt門化->data[7],pkt->data[8],pkt->da街商ta[9],pkt->data[10],pkt木舞->data[11]);
void pkt_send愛湖_normal(struct fast_packet *pkt,int p子體kt_len)
{
xprintf("pkt_send_normal->%煙有p,outport:%d,len:%d\n",pkt,pkt->um.離知outport,pkt_len);
pkt->um.pktsrc = 1;/*報文來源為(w銀了èi)CPU輸入,站在硬件角度*/
pkt->um.pktdst = 0;/*報文學就目的為(wèi)硬件輸出*/
pkt->um.dstmid = 5;/*直接從硬件GOE上遠模塊輸出,不(bù)走解析、查表等模塊*/
fast_ua_send(pkt,pkt_len);/*調用FA煙城ST API函數發送*/
}