亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? algo.tex

?? 用C++編寫的GPRS協議棧源代碼
?? TEX
字號:
%\documentclass[12pt,openany]{report}%\begin{document}      \section{Psuedocode for Packet Processing at MAC}The psuedocode for packet processing at the MAC is described below.\subsection{Packet at MS MAC}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill       {\bf Event:}\> Packet received at an MS\\ \\{\bf Method:}\> ms\_recv()\\ \\{\bf Comment:}\> It can be a packet from the IFQ to be sent to the BS \\  \>or a packet from the Air Interface to be sent up the stack.\\ \> The latter case occurs only at the start of a down-slot.\\ \\{\bf Action:}\>Check direction in packet header\\ \>If packet direction == UP\\ \>\>Check mac\_source and mac\_destination\\\>\>If mac\_source == BS and mac\_destination == (self or broadcast)\\\>\>\>Stop the Release timer if it is On\\\>\>\>Restart Release Timer if the IFQ is empty. \\\>\>\>Store packet in pktRx\_[downslot]. (see Note)\\ \>\>\>Switch the radio On.\\\>\>\>Pass pktRx\_[downslot] to rx\_from\_phy().\\\>\>Else ignore packet.\\ \\\>Else if packet direction == DOWN \\\>\>If packet is a broadcast \\\>\>\>Stamp it to be transmitted on upslot0, frequency0.\\\>\>Else \\\>\>\>check tx\_chan[] for slot/frequency to transmit packet.\\\>\>\>If no slot-frequency found\\\>\>\>\>Store packet in p\_temp\\\>\>\>\>Call send\_resource\_request().\\\>\>\>Else \\\>\>\>\>If Release Timer is ON, stop it.\\\>\>\>\>Stamp frequency channel onto packet header\\\>\>\>\>Store packet in pktTx[up\_slot alloted]. (see Note)\\\>\>\>\>Pass pktTx[up\_slot alloted] to rx\_from\_ll()\\ \end{tabbing}Note : In the case where the MS receives two packets on concurrent slots, thepacket received later will over-write the previouspacket, at the instance at the end of the old slot and start of thenew one. At this instance, the {\tt pktRxTimer} is not yet done withthe old packet and still requires the pointer. It triggers an error.To avoid this, we use an array (could also use a linked list), thatstores pointers to packets received in each slot. The array entry iscleared by the {\tt recvHandler} after the packet reception is over. A similar situation holds for the {\tt pktTx[]}. We use an array toavoid over-writing and thus loosing packets to be transmitted inadjacent slots.Note that this structure would also suffice for multi-slot operation.\subsection{Packet received at an BS}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\= xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill       {\bf Method:}\> bs\_recv()\\ \\{\bf Comment:}\> It can be a packet from the IFQ to be sent to an MS \\  \>or a packet from an MS at the Air Interface.\\ \> The latter case occurs only at the start of an up-slot.\\ \\{\bf Action:}\>Check direction in packet header\\ \>If packet direction == UP\\ \>\>Check mac\_destination\\\>\>If mac\_destination == (self or Broadcast)\\\>\>\>Extract the frequency channel the packet was sent on from its header\\.\>\>\>Store packet in rxQ[freq][upslot]. (see Note)\\\>\>\>Switch the radio On.\\\>\>\>Pass rxQ\_[freq][upslot] to rx\_from\_phy().\\\>\>Else ignore packet.\\ \\    \>Else if packet direction == DOWN\\ \>\>If packet is a broadcast \\\>\>\>Stamp it to be transmitted in downslot0, frequency0.\\\>\>Else \\\>\>\>Look up slot reserved for this destination from thevlr\_downtable[][] \\\>\>\>If no slot reserved for destination\\\>\>\>\> Mark packet as waiting. \\\>\>\>\> Call slot\_allot()\\\>\>\>\> Call send\_resource\_reply()\\\>\>\>Else \\\>\>\>\>If {\em resource\_reply} not yet received by MS\\\>\>\>\>\> Mark packet as waiting.\\ \>\>\>\>Stamp frequency channel onto packet header\\\>\>\>\>Store packet in txQ[freq][downslot]. (see Note)\\\>\>\>\>Pass txQ[freq][downslot] to rx\_from\_ll()\\\end{tabbing}        Note: The situation here is similar to that at the MS. There is also theadded complexity that the BS may have to transmit/receive packets meant for/fromdifferent MS at a time; and that it can transmit/receive on manyfrequencies at a time. We sort and store all packets to betransmitted, and those received, in a two-dimensional array, in orderto keep track of all the packets. Again, the entries are cleared afterthe packets have been fully processed.\subsection{Accepting a packet from the IFQ }\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt rx\_from\_ll ()} \\ \\{\bf Comment:}\> This is where the MAC header is added and its valuesset\\ \\{\bf Action:}\> Add MAC header subtype\\\> Configure the other MAC header fields\\\> Set the wait flag to zero, unless the packet has already beenmarked waiting\\\end{tabbing} \subsection{End of a Down Slot}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> downslotHandler(Event *e)\\ \\{\bf Comment:}\> It is the BS' turn to transmit. See if it has anypacket  \\\> scheduled to be transmitted in this slot. All frequencies needed to bechecked.\\ \\{\bf Action:}\> Restart downslot timer to clock the next slot.\\\>Start the Upslot Timer if this downslot 3 in the first TDMA frame.\\\>Compare node\_address with the BS\_address\\\> If node is a BS\\\>\> Check {\tt txQ[freq][downslot]} for all frequencies\\\>\> If {\tt txQ[freq][downslot]} !=NULL (see Note)\\\>\>\> Check if the packet has been marked as waiting\\\>\>\> If not, then pass packet to tx\_onto\_PHY() \\\> Else do nothing \\\> Increment downslot counter. Take care of wrap around.\\\end{tabbing}        Note: {\tt txQ[freq\_][downslot\_]} stores a pointer to the packet to betransmitted by the BS in downslot in {\tt  downslot\_} on frequency{\tt  freq\_}.\subsection{End of a Up Slot}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> upslotHandler(Event *e)\\ \\{\bf Comment:}\> An MS can transmit a packet if it has one scheduledfor transmission.\\ \\{\bf Action:}\> Restart upslot timer to clock the next slot\\\>Compare node\_address with the BS\_address\\ \> If node is an MS\\ \>\> Check if it has a packet to transmit in {\tt pktTx[up\_slot\_]}\\\>\> if  {\tt pktTx[up\_slot\_]} is not NULL \\\>\>\> Start slot release timer, if IFQ is empty\\\>\>\> Switch the radio ON \\\>\>\> Pass the packet in {\tt pktTx[up\_slot\_]} to {\tt tx\_onto\_PHY ()}\\\>\>\> Free {\tt pktTx[up\_slot\_] }\\\> Else do nothing \\\> Increment upslot counter. Take care of wrap around.\\\end{tabbing}\subsection{Packet to be transmitted onto the Air-Interface }\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt tx\_onto\_PHY ()} \\ \\{\bf Comment:}\> This is where the packet is actually passed down tothe physical layer. \\ \\{\bf Action:}\> Find packet transmission time \\\> Assert that it is non-negative but less than {\tt slot\_time\_} \\ \>Check if this is the PRACH and this is an MS \\\>If yes, check for collision on {\tt chan0\_0} \\\>If collision\\\>\> Change {tt chan0\_0} to {\sc coll}\\\>\> Increment {\tt coll\_count}\\\>\> Mark error in packet header \\\> Check the MAC header subtype \\\> If it is a {\em resource\_request}\\\>\> Schedule the {\tt Wait timer} for 1 TDMA frame \\\> Start the {\tt pktTxTimer} \\\> Pass the packet to {\tt downtarget\_} \\\end{tabbing} \subsection{Packet to be received from the Air-Interface}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt rx\_from\_PHY ()} \\ \\{\bf Comment:}\> This is where a packet is received from theAir-Interface by the receiver. \\ \\      {\bf Action:}\> Check if this is the PRACH and this is the BS \\\> If yes, check for collision on {\tt chan0\_0} \\\> If collision\\\>\> Drop the colliding packets\\\>\> Decrement the {\tt coll\_count}\\  \>\> Change the  {tt chan0\_0} to {\sc idle} when all collidingpackets have been dropped\\\> Else \\\>\> Drop packet header if marked in error \\\>\> Find packet reception interval \\\>\> Assert that it is non-negative but less than {\tt slot\_time\_} \\ \>\>  Start the {\tt pktRxTimer} \\ \end{tabbing}  \subsection{Packet send completed}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt sendHandler ()} \\ \\{\bf Comment:}\> Simply winds up the transmission \\ \\{\bf Action:}\> Free the packet \\\> Switch the radio OFF \\\> Unlock the IFQ if the {\tt wait timer} is not busy\\\end{tabbing}  \subsection{Packet receive completed}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt sendHandler ()} \\ \\{\bf Comment:}\> Wind up reception and pass the packet onto higher layers\\ \\ {\bf Action:}\> Switch the radio OFF \\  \> Double check whether I should receive the packet\\\> If not, drop the packet\\\> Pass the packet to {\tt fwd\_DATA\_to\_LL()}\end{tabbing}  \subsection{A packet has to be passed to the RLC}\begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt fwd\_DATA\_to\_LL()} \\ \\{\bf Comment:}\> The packet can be either a MAC control packet or data packet\\\> It has to be handled accordingly.\\ \\{\bf Action:}\> Check MAC type\\\> If  MAC type == DATA\\\>\> Remove MAC header\\\>\> Increment hop count in the packet's common header \\\>\> Pass it on to the {\tt uptarget}, the RLC in this case\\\> If MAC type == Control, check for subtype\\\> If  MAC sub type == {\em res\_request}\\\>\> Allot a slot to the source MS, through {\tt slot\_allot()}\\\>\> Schedule a {\em res\_reply} to be sent\\\> If  MAC sub type == {\em res\_reply}\\\>\> Stop the {\tt wait timer}\\\>\> Obtain the slot and frequency reserved for me from the  {\emres\_reply} header \\ \>\> Set {\tt tx\_chan[slot]=rx\_chan[slot] = frequency}\\\>\> Unmark the waiting packet at the BS\\\>\> Move the packet buffered at the MS to {\tt  pktTx[slot]}\\\>\> Pass the {\tt  pktTx[slot]} to {\tt  rx\_from\_ll()}\\\>\> Unlock the IFQ\\\> If  MAC sub type == {\em tx\_end}\\\>\> Clear the corresponding MS' entry from the {\tt vlr\_.down\_table}and {\tt vlr\_.up\_table}\\\end{tabbing} \subsection{Resources have to be alloted to an MS} \begin{tabbing}{\bf Comment:}  \= xxxx\= xxxx\= xxxx\=xxxx\=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\kill{\bf Method:}\> {\tt slot\_allot (int  ms\_, int \&freq, int \&slot)}\\ \\{\bf Comment:}\> A slot has to be alloted to the mobile from the poolof GPRS\\\>and GSM slots depending on which type the mobile is. \\ \\{\bf Action:}\> Check if this is a GPRS mobile \\\> If it is a GPRS MS \\\>\> Find the first available GPRS slot in the  {\tt vlr\_.up\_table}\\\>\> Refuse connection if no GPRS slot- frequency available\\\> Else if  it is a GSM MS\\\>\> Find the first available GSM slot in the  {\tt vlr\_.up\_table}\\ \>\> Refuse connection if no GSM slot- frequency available\\ \> Enter the MS' MAC {\tt index\_} into the {\tt vlr\_.up\_table} and{\tt vlr\_.down\_table}\\\> Return the value of the frequency and slot to the caller \\\end{tabbing} This completes the description of the psuedocode for packet processing at the MAC.%\end{document}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区美女| 精品成人一区二区三区四区| 亚洲另类色综合网站| 99精品视频中文字幕| 一区二区三区蜜桃网| 欧美日韩国产一区二区三区地区| 视频一区中文字幕国产| 日韩精品在线看片z| 高清在线观看日韩| 亚洲欧美日韩国产手机在线| 欧美色爱综合网| 久88久久88久久久| 国产精品进线69影院| 欧美无乱码久久久免费午夜一区 | 国产很黄免费观看久久| 亚洲欧洲成人自拍| 精品视频999| 精品一区二区三区欧美| 国产精品理伦片| 欧美天堂一区二区三区| 国产在线麻豆精品观看| 亚洲视频一区二区在线观看| 欧美一区二区在线看| 亚洲成人黄色小说| 丝袜美腿亚洲一区二区图片| 亚洲精品一线二线三线无人区| 粉嫩av亚洲一区二区图片| 亚洲一区二区三区在线播放 | 欧美日韩成人综合在线一区二区| 理论电影国产精品| 亚洲理论在线观看| 久久亚洲免费视频| 91精品福利视频| 国产综合色在线视频区| 亚洲国产成人91porn| 欧美—级在线免费片| 欧美美女一区二区在线观看| 成年人午夜久久久| 久久国产欧美日韩精品| 夜夜夜精品看看| 国产区在线观看成人精品 | 狠狠色2019综合网| 色综合久久久久综合体桃花网| 三级亚洲高清视频| 国产色爱av资源综合区| 色一情一伦一子一伦一区| 国产精品99久久久久| 视频一区视频二区中文| 亚洲精品v日韩精品| 国产视频一区在线播放| 欧美一区二区免费| 在线观看欧美黄色| 99热99精品| 国产伦精品一区二区三区免费| 视频一区免费在线观看| 一区二区不卡在线播放| 国产精品福利一区二区| 国产午夜亚洲精品羞羞网站| 欧美成人性战久久| 欧美一区二区三区精品| 欧美精品第1页| 欧美天堂一区二区三区| 99国产麻豆精品| 日本韩国欧美一区| 91亚洲精品久久久蜜桃| 成人av手机在线观看| 精品影视av免费| 六月丁香婷婷久久| 蜜臀精品一区二区三区在线观看 | 欧美日韩一区二区三区四区五区| 成人黄色网址在线观看| 成人国产精品视频| 不卡一区二区三区四区| hitomi一区二区三区精品| 成人成人成人在线视频| 成人午夜视频在线观看| 成人黄色国产精品网站大全在线免费观看| 国产一区999| 成人av电影观看| 91网站在线播放| 欧美色图免费看| 在线电影院国产精品| 日韩欧美专区在线| 2022国产精品视频| 欧美极品美女视频| 亚洲欧洲在线观看av| 亚洲欧美aⅴ...| 亚洲成人资源网| 麻豆91在线观看| 国产剧情av麻豆香蕉精品| 欧美一级视频精品观看| 日韩美女主播在线视频一区二区三区| 欧美一区二区成人| 精品99久久久久久| 国产精品三级视频| 亚洲精品免费看| 日韩综合小视频| 国产精品一区在线观看乱码 | 久久久另类综合| 国产精品久久久久aaaa樱花| 亚洲一区二区中文在线| 日韩一区欧美二区| 国产精品资源在线观看| 一道本成人在线| 日韩欧美国产高清| 中文字幕一区三区| 天天操天天综合网| 国产91丝袜在线观看| 在线观看网站黄不卡| 欧美mv日韩mv国产网站app| 国产精品久久夜| 日韩中文字幕不卡| 国产v综合v亚洲欧| 欧美日韩免费视频| 欧美国产日韩亚洲一区| 性做久久久久久| 懂色av一区二区三区蜜臀| 欧美伊人精品成人久久综合97| 久久蜜桃av一区二区天堂| 国产剧情在线观看一区二区| 欧美色窝79yyyycom| 久久午夜色播影院免费高清| 亚洲永久精品国产| 国产成人午夜精品影院观看视频| 欧美中文字幕不卡| 国产欧美日韩一区二区三区在线观看| 亚洲国产视频a| 国产成人av电影| 日韩一区二区免费在线电影| 亚洲精品高清视频在线观看| 国产一区高清在线| 欧美日韩激情一区二区| 国产精品久久久久久久久果冻传媒| 日本成人超碰在线观看| 色综合视频在线观看| 国产人成一区二区三区影院| 美脚の诱脚舐め脚责91 | 欧美喷潮久久久xxxxx| 亚洲欧洲日韩在线| 国产成人在线观看| 精品伦理精品一区| 日韩激情视频在线观看| 欧美在线一区二区| 综合在线观看色| 国产99一区视频免费| 精品成人佐山爱一区二区| 天堂va蜜桃一区二区三区漫画版| 91久久国产综合久久| 国产精品美女视频| 国产999精品久久久久久绿帽| 日韩欧美在线网站| 午夜伊人狠狠久久| 欧美在线你懂的| 亚洲人成7777| 成人高清av在线| 中文无字幕一区二区三区| 韩国理伦片一区二区三区在线播放| 欧美精品高清视频| 日韩成人精品视频| 91麻豆精品久久久久蜜臀| 亚洲第一会所有码转帖| 欧美性猛交xxxx乱大交退制版 | 欧美系列日韩一区| 一区二区三区精品在线| 国产性做久久久久久| 国产老妇另类xxxxx| 久久久99久久精品欧美| 国产乱一区二区| 国产肉丝袜一区二区| 国产成a人亚洲精品| 欧美激情中文不卡| 99久久国产综合精品色伊| 亚洲免费在线观看视频| 色综合天天综合网天天狠天天| 日韩美女视频一区二区| 色av成人天堂桃色av| 亚洲va天堂va国产va久| 欧美一区午夜视频在线观看| 偷窥国产亚洲免费视频| 日韩精品影音先锋| 国产一区二区美女诱惑| 国产精品国产三级国产aⅴ中文| 99久久久无码国产精品| 亚洲一级二级在线| 欧美一区二区视频网站| 国产在线精品一区在线观看麻豆| 中文字幕第一页久久| 91蜜桃传媒精品久久久一区二区| 亚洲精品你懂的| 日韩一区二区在线看| 国产91精品精华液一区二区三区| 亚洲精品视频在线| 正在播放亚洲一区| 国产白丝精品91爽爽久久| 亚洲欧美国产三级| 日韩一区二区三区电影在线观看| 国产91露脸合集magnet| 亚洲激情五月婷婷| 欧美电视剧免费全集观看| 成人精品视频一区|