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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mpbdlmanagement.c

?? 這是全套的PPP協(xié)議的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
/******************************************************************************** mp_initialize_receiving_end_of_the_bundle - *						Initializes receiving end of the class** This functions clears the receiving end class of the given bundle* * RETURNS: N/A*/void mp_initialize_receiving_end_of_the_bundle	(	PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState							/* mpFraming layer state representing the bundle */	)	{	MP_BUNDLE_RECEIVING_END_CLASS		*pReceivingEndClass = NULL;	MP_FRAMING_LAYER_STACK_DATA			*pStackData = NULL;	pStackData = (MP_FRAMING_LAYER_STACK_DATA *)pMpFramingLayerState->stackData;	pReceivingEndClass = &(pStackData->bundle.receiving_end);	/* Clear the sending end class of the bundle */	bzero ((void *)pReceivingEndClass, sizeof (MP_BUNDLE_RECEIVING_END_CLASS));	}/******************************************************************************** mp_initialize_receiving_end_link_class*						Initializes receiving end link class of the given link** This functions clears the receiving end link class of the given link* * RETURNS: N/A*/LOCAL void mp_initialize_receiving_end_link_class	(	PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState,							/* mpFraming layer state representing the bundle */	USHORT					linkNumber /* link number in the sending end */	)	{	MP_BUNDLE_RECEIVING_END_CLASS		*pReceivingEndClass = NULL;	MP_FRAMING_LAYER_STACK_DATA			*pStackData = NULL;	if (pMpFramingLayerState == NULL)		return;	pStackData = (MP_FRAMING_LAYER_STACK_DATA *)pMpFramingLayerState->stackData;	pReceivingEndClass = &(pStackData->bundle.receiving_end);	/* Clear the receiving end class of the bundle */	bzero ((void *)&pReceivingEndClass->links[linkNumber], 				sizeof (MP_BUNDLE_RECEIVING_END_LINK_CLASS));	}/******************************************************************************** mp_remove_port_from_sending_end_of_the_bundle -  *						Drops a link from the sending end of the bundle** This function drops the link from the sending end of the bundle. It removes * the entry of the link in the sending end link class array. It updates the * total BW available in the sending end of the bundle. It decrements the total* number of links count in the sending end by one. It updates BW share * information of individual links in the sending end. In the entry of the link* in the port to bundle assignment array, it sets is_link_in_sending_end to * FALSE. * * RETURNS: OK or ERROR*/STATUS mp_remove_port_from_sending_end_of_the_bundle	(	PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState,							/* mpFraming layer state representing the bundle */	PFW_STACK_OBJ			*pMemberStackObj /*stack obj representing the link*/	)	{	MP_FRAMING_LAYER_STACK_DATA		*pStackData = NULL;	UINT 							loopIndex = 0;	MP_BUNDLE_SENDING_END_CLASS		*pSendingEndClass = NULL;	STATUS 							status;	MP_FRAMING_LAYER		        *pComponent = NULL;	BOOL							bFound;	if ((pMpFramingLayerState == NULL) || (pMemberStackObj == NULL))		return ERROR;	pStackData = (MP_FRAMING_LAYER_STACK_DATA *) 									pMpFramingLayerState->stackData;	pSendingEndClass = &pStackData->bundle.sending_end;	/* Remove the link's entry from the sending end link class arrary */	bFound = FALSE;	for (loopIndex = 0; loopIndex < pSendingEndClass->no_of_links;     														loopIndex++)		{		if (pSendingEndClass->links [loopIndex].pMemberStackObj == 																pMemberStackObj)			{			bFound = TRUE;			while (loopIndex < (pSendingEndClass->no_of_links - 1))				{				pSendingEndClass->links [loopIndex] = 					pSendingEndClass->links [loopIndex + 1];				loopIndex++;				}				break;			}		}	if (bFound == FALSE)		return OK;	pSendingEndClass->no_of_links--;	/* Update the total BW available in the sending end */	/* Search the matching entry for the link in port array */		for (loopIndex = 0; loopIndex < pStackData->bundle.no_of_links;     														loopIndex++)		{		if (pStackData->bundle.memberLinks[loopIndex].pMemberStackObj == 																pMemberStackObj)			break;		}	if (loopIndex == pStackData->bundle.no_of_links)		return ERROR;		/* Update the total BW */	pSendingEndClass->total_bandwidth -= 						pStackData->bundle.memberLinks[loopIndex].speed;	pSendingEndClass->aggregateMru -= 		pStackData->bundle.memberLinks[loopIndex].pLcpBundleOptions->remoteMRU;	/* Recalculate BW share information of each link in the sending end */	status = mp_bundle_sending_end_update_bandwidth_share_information 						(pMpFramingLayerState);	if (status == ERROR)		return ERROR;	/* Recalculate Remote MRU share information of each link in the sending end */	status = mp_bundle_sending_end_update_mru_share_information 						(pMpFramingLayerState);	if (status == ERROR)		{		printf ("MRU Share failed\n");		return ERROR;		}	/* Update port_to_bundle_assignment array in the component structure */	pComponent = (MP_FRAMING_LAYER *) pMpFramingLayerState->pluginObj;	if (semTake (pComponent->componentSem, WAIT_FOREVER) == ERROR)		return ERROR;	/* Search the matching entry for the link in the bundle assignment array */		for (loopIndex = 0; loopIndex < MAX_NO_OF_PPP_PORTS; loopIndex++)		{		if (pComponent->port_to_bundle_assignment [loopIndex].pMemberStackObj == 																pMemberStackObj)			{                                             			pComponent->port_to_bundle_assignment [loopIndex].						port_used_in_sending_end = FALSE;			break;			}		}	if (semGive (pComponent->componentSem) == ERROR)		return ERROR;	return OK;	}/******************************************************************************** mp_remove_port_from_receiving_end_of_the_bundle -  *						Drops a link from the receiving end of the bundle**This function drops the link from the receiving end of the bundle. It removes *the entry of the link in the receiving end link class array. It decrements the *total number of links count in the receiving end by one. It recalculates the *buffer requirement in the receiving end. In the entry of the link in the port *to bundle assignment array, it sets is_link_in_the_receiving_end to FALSE * * RETURNS: OK or ERROR*/STATUS mp_remove_port_from_receiving_end_of_the_bundle	(	PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState,							/* mpFraming layer state representing the bundle */	PFW_STACK_OBJ			*pMemberStackObj /*stack obj representing the link*/	)	{	MP_FRAMING_LAYER_STACK_DATA		*pStackData = NULL;	UINT 							loopIndex = 0;	MP_BUNDLE_RECEIVING_END_CLASS		*pReceivingEndClass = NULL;	MP_FRAMING_LAYER		        *pComponent = NULL;	BOOL							bFound;	if ((pMpFramingLayerState == NULL) || (pMemberStackObj == NULL))		return ERROR;	pStackData = (MP_FRAMING_LAYER_STACK_DATA *) pMpFramingLayerState->																	stackData;	pReceivingEndClass = &pStackData->bundle.receiving_end;	/* Remove the link's entry from the receiving end link class arrary */	bFound = FALSE;	for (loopIndex = 0; loopIndex < pReceivingEndClass->no_of_links;     														loopIndex++)		{		if (pReceivingEndClass->links [loopIndex].pMemberStackObj == 																pMemberStackObj)				{				bFound = TRUE;				while (loopIndex < (pReceivingEndClass->no_of_links - 1))					{					pReceivingEndClass->links [loopIndex] = 						pReceivingEndClass->links [loopIndex + 1];					loopIndex++;					}				break;				}		}	if (bFound == FALSE)		return OK;	pReceivingEndClass->no_of_links--;#if 0 /* not supported in this release */	/*Reestimate the buffer requirement for the receiving end */	mp_estimate_buffer_requirement (pMpFramingLayerState);#endif	/* Update port_to_bundle_assignment array in the component structure */	pComponent = (MP_FRAMING_LAYER *) pMpFramingLayerState->pluginObj;	if (semTake (pComponent->componentSem, WAIT_FOREVER) == ERROR)		return ERROR;	/* Search the matching entry for the link in the bundle assignment array */		for (loopIndex = 0; loopIndex < MAX_NO_OF_PPP_PORTS; loopIndex++)		{		if (pComponent->port_to_bundle_assignment [loopIndex].pMemberStackObj == 																pMemberStackObj)			{			pComponent->port_to_bundle_assignment [loopIndex].						port_used_in_receiving_end = FALSE;			break;			}		}	if (semGive (pComponent->componentSem) == ERROR)		return ERROR;	return OK;	}/******************************************************************************** mpBundleProfileGet - Get the profile configurations of the Manager Stack** This function retrieves the bundle related LCP negotiable option values * negotiated on the given Manager Stack. This function is called by * mpLinkAssign () to get Manager Stack's MP configurations and configures the * Member Stack's MP related LCP profiles before the negotiation is started on * the Member Stack.* * RETURNS: OK or ERROR*/void mpBundleProfileGet	(	PFW_PLUGIN_OBJ_STATE	*pMpFramingLayerState,							/* mpFraming layer state representing the bundle */	LCP_BUNDLE_PROFILE		*pLcpBundleProfile 		/* Pointer to LcpBundleProfile structure where Manager Stack profiles		   are stored */	)	{	MP_FRAMING_LAYER_STACK_DATA		*pStackData = NULL;	if (pMpFramingLayerState == NULL) 		return;	pStackData = (MP_FRAMING_LAYER_STACK_DATA *)pMpFramingLayerState->stackData;		/* Copy the Manager Stack profile from the Manager Stack */	memcpy ((void *)pLcpBundleProfile, 				(const void *)&pStackData->lcpBundleProfile, 				(size_t)sizeof (LCP_BUNDLE_PROFILE));	}/******************************************************************************** mp_receive_port_is_in_bundle - *	Checks whether the given link is assigned to any bundle and the link is *	there in the receiving end	* ** Checks whether the given link is there in any of the bundle. If so, it checks * whether it is in the receiving end of the bundle. If so, it gets the bundle * number and returns TRUE. Otherwise, it returns FALSE** RETURNS: PASS or FAIL*/TEST mp_receive_port_is_in_bundle	(	PFW_STACK_OBJ	*pMemberStackObj,	/*stack obj representing the link*/	PFW_STACK_OBJ	**ppManagerStackObj 							/* mpFraming layer state representing the bundle */	)	{	PFW_OBJ				*pfwObj = NULL;	MP_FRAMING_LAYER	*pComponent = NULL;	PFW_PLUGIN_OBJ		*pPluginObj = NULL;	UINT				loopIndex = 0;	TEST				returnCode;	if ((pMemberStackObj == NULL) || (ppManagerStackObj == NULL))		return FAIL;	pfwObj = pfwStackObjPfwGet (pMemberStackObj);	/* Get the framework reference */	if (pfwObj == NULL)		{		printf ("NULL Framework Reference\n");		return FAIL;		}	/* Get the component data of the mpFraming layer */	pPluginObj = pfwPluginObjGet (pfwObj, "MP_FRAMING_LAYER");		if (pPluginObj == NULL)		{		printf("PPP: Could not find MP Framing Layer plugin Obj in the \				framework 0x%x\n", (int) pfwObj );		return FAIL;		}	pComponent = (MP_FRAMING_LAYER *) pPluginObj;	returnCode = FAIL;	/* Check in the port_to_bundle_assignment array */	/* Search the matching entry for the link in the bundle assignment array */		if (semTake (pComponent->componentSem, WAIT_FOREVER) == ERROR)		return FAIL;	for (loopIndex = 0; loopIndex < MAX_NO_OF_PPP_PORTS; loopIndex++)		{		if ((pComponent->port_to_bundle_assignment [loopIndex].pMemberStackObj==      	 	 pMemberStackObj) && 			(pComponent->port_to_bundle_assignment [loopIndex].			 port_used_in_receiving_end == TRUE))			{			*ppManagerStackObj = 			pComponent->port_to_bundle_assignment [loopIndex].pManagerStackObj;			returnCode = PASS;			break;			}					}	if (semGive (pComponent->componentSem) == ERROR)		return FAIL;	return returnCode;	}/******************************************************************************** mp_fragment_flag_enum_to_string - *							Returns a string describing the fragment flag type		* * This function returns a string describing fragment flag type. This string is * used in generating the debug messages.** RETURNS: char **/char * mp_fragment_flag_enum_to_string 	(	enum FRAGMENT_FLAG	fragment_flag	)	{	if (fragment_flag == FIRST_FRAGMENT)		return ("first fragment");	else if (fragment_flag == LAST_FRAGMENT)		return ("last fragment");	else if (fragment_flag == NOT_END_FRAGMENT)		return ("none end fragment");	else if (fragment_flag == ONLY_FRAGMENT)		return ("only fragment");	else		return ("unknown fragment");	}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色视频欧美一区二区三区| 一区二区激情视频| 91精品国产免费| 国产精品羞羞答答xxdd| 香蕉av福利精品导航| 日韩一区中文字幕| 中文在线免费一区三区高中清不卡| 欧美天堂亚洲电影院在线播放| 久久国产精品色| 日本欧美在线观看| 图片区小说区区亚洲影院| 日本系列欧美系列| 国产精品美女视频| 日韩一区二区在线看| 粉嫩绯色av一区二区在线观看| 亚洲影视在线播放| 国产精品动漫网站| www国产精品av| 欧美成人福利视频| 69p69国产精品| 色综合一个色综合| 日韩和欧美一区二区三区| 国产麻豆91精品| 日本午夜一区二区| 亚洲不卡av一区二区三区| 精品福利在线导航| 久久精品亚洲精品国产欧美| 成人一区二区三区视频| 国产精品久久久久婷婷| 日韩一区二区三区免费看| 国产原创一区二区| 91免费国产在线| 天天爽夜夜爽夜夜爽精品视频| 色老头久久综合| 成人激情免费视频| 成人app在线| 99riav久久精品riav| 成人一区二区视频| 91.com在线观看| 91亚洲资源网| 国产成人午夜高潮毛片| 亚洲免费电影在线| 欧美精品一区二区久久久| 国产精品国产精品国产专区不片| 久久国产夜色精品鲁鲁99| 国模少妇一区二区三区| 麻豆精品新av中文字幕| 欧美乱熟臀69xxxxxx| 91农村精品一区二区在线| 亚洲乱码国产乱码精品精的特点 | 日韩国产高清在线| 在线一区二区视频| 91蝌蚪porny| 成人欧美一区二区三区黑人麻豆 | 亚洲成人三级小说| 国产区在线观看成人精品| 亚洲精品一区二区三区四区高清| 国产精品自在在线| 欧美性感一区二区三区| 日本aⅴ精品一区二区三区| 99视频在线观看一区三区| 欧美日韩日日骚| 久久精品噜噜噜成人88aⅴ| 欧美激情综合网| 狠狠色丁香久久婷婷综合丁香| 五月激情综合色| 欧美国产精品一区| 亚洲成人先锋电影| 精品免费视频一区二区| 日本一区二区电影| 欧美成人vr18sexvr| 亚洲丝袜精品丝袜在线| 天堂精品中文字幕在线| 日韩一区二区三区视频| 午夜精品久久久久| 久久er99热精品一区二区| 99久久伊人网影院| 香蕉影视欧美成人| 久久麻豆一区二区| 国产精品福利一区二区三区| 一区二区视频在线| 国产成人精品亚洲日本在线桃色| 国产亚洲精品超碰| 色婷婷综合五月| 日韩av电影免费观看高清完整版| 久久久综合激的五月天| 亚洲国产成人av网| 欧美成人精精品一区二区频| 亚洲成人激情自拍| 国产福利91精品一区二区三区| 国产精品久久久久久久久晋中| 激情综合网最新| 亚洲综合久久久| 欧美亚洲禁片免费| 福利一区二区在线| 亚洲色图欧洲色图婷婷| 粉嫩高潮美女一区二区三区| 精品国产区一区| 欧美日韩高清不卡| 免费看欧美美女黄的网站| 51精品国自产在线| 欧美无砖专区一中文字| 亚洲青青青在线视频| 不卡高清视频专区| 欧美色图激情小说| 久久亚洲影视婷婷| 紧缚奴在线一区二区三区| 中文字幕精品在线不卡| 国产精品一区二区三区乱码| 亚洲一二三专区| 久久av中文字幕片| 国产成a人无v码亚洲福利| 久久久久国色av免费看影院| 欧美96一区二区免费视频| 国产麻豆成人精品| 欧美美女视频在线观看| 久久精品视频在线看| 精品一区中文字幕| 成人av网址在线观看| 日韩欧美黄色影院| 中文字幕日韩一区| 波波电影院一区二区三区| 91精品国产麻豆| 精品一区二区三区免费| 欧美午夜理伦三级在线观看| 亚洲一区免费观看| 一本一道久久a久久精品| 一级精品视频在线观看宜春院 | 久久99精品久久久久婷婷| 欧美一区二区三区四区在线观看 | 欧美大肚乱孕交hd孕妇| 国产免费成人在线视频| 成人av在线网站| 欧美日韩国产精选| 亚洲免费av观看| 中文在线一区二区| 婷婷综合久久一区二区三区| www.亚洲人| 午夜精品福利一区二区三区av| 97久久久精品综合88久久| 国产目拍亚洲精品99久久精品| 91亚洲国产成人精品一区二区三 | 精品国产成人系列| 99久久777色| 中文av一区特黄| 成人午夜激情在线| 日本一区二区三区久久久久久久久不| 91在线观看视频| 成人欧美一区二区三区白人 | 国产精品伦理一区二区| 日本伦理一区二区| 国产一区二区0| 亚洲午夜在线视频| 欧美日韩一区不卡| 国产99久久久久久免费看农村| 久久人人97超碰com| 91成人在线免费观看| 亚洲资源在线观看| 欧美性大战久久久| 日日夜夜免费精品| 欧美tickling挠脚心丨vk| 成人午夜私人影院| 丝袜亚洲另类丝袜在线| 成人免费一区二区三区在线观看| 成人avav影音| 一区二区在线观看免费| 欧美在线免费播放| 国产乱理伦片在线观看夜一区| 国产亚洲欧美色| 欧美日韩欧美一区二区| 精品综合久久久久久8888| 亚洲人xxxx| 欧美片网站yy| 91污在线观看| 午夜精品久久久久久不卡8050| 91麻豆精品国产91久久久久久| 99久久99久久精品免费看蜜桃| 亚洲人成网站在线| 国产偷国产偷精品高清尤物| 欧美日韩国产不卡| 国模冰冰炮一区二区| 国产精品毛片高清在线完整版| 91精品国产福利在线观看| 国产在线视频不卡二| 青青草91视频| 国产清纯在线一区二区www| 日韩欧美综合在线| 欧美视频日韩视频| 国产在线一区观看| 免费成人在线网站| 亚洲综合偷拍欧美一区色| 国产精品福利一区| 国产精品视频一二| 色综合中文综合网| 久久国产精品免费| 亚洲欧洲av另类| 中文一区二区完整视频在线观看| 欧美三级电影精品| 国产一区二区调教| 亚洲国产日韩一区二区|