⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pppstate.c

📁 这是全套的PPP协议的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
	/* UP */                         {null_state,ILLEGAL_PPP_STATE}, 	/* DOWN */                       {set_ppp_state,PPP_STARTING_STATE},	/* OPEN	*/                       {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* CLOSE */                      {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                  send_termination_request,	                                                PPP_CLOSING_STATE},	/* TIMEOUT_WITH_COUNTER_GREATER*/{send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* TIMEOUT_WITH_COUNTER_EXPIRED*/{this_layer_finished,	                                                PPP_STOPPED_STATE},	/* RX */	/* CONFIGURE_REQUEST_GOOD */     {send_configuration_ack,	                                                PPP_ACK_SENT_STATE},	/* CONFIGURE_REQUEST_BAD */      {send_configuration_nak,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_REQUEST_BAD_OPTION*/{send_configuration_reject,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_ACK */              {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                  set_ppp_state,PPP_ACK_RECEIVED_STATE},	/* CONFIGURE_NAK */              {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE, 	                                  send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_REJECT */           {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE, 	                                  send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* TERMINATE_REQUEST */          {send_termination_ack,	                                                PPP_REQUEST_SENT_STATE},	/* TERMINATE_ACK */              {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* UNKNOWN_CODE */               {send_code_reject,	                                                PPP_REQUEST_SENT_STATE},	/* CODE_REJECT_PERMITTED */      {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* PROTOCOL_REJECT */            {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* CODE_REJECT_CATASTROPHIC */  {this_layer_finished,PPP_STOPPED_STATE},	/* ECHO_REQUEST	*/               {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* ECHO_REPLY */                 {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* DISCARD_REQUEST */            {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* PPP_ECHO_RESPONSE_TIMEOUT */  {null_state,ILLEGAL_PPP_STATE},	/* PPP_ECHO_RESPONSE_FAILURE */  {null_state,ILLEGAL_PPP_STATE}	},	{	/* ----------------------------------------------------------------- */	/* ACK_RECEIVED state: 7                                             */	/* ----------------------------------------------------------------- */	/* UP */                         {null_state,ILLEGAL_PPP_STATE}, 	/* DOWN	*/                       {set_ppp_state,PPP_STARTING_STATE},	/* OPEN	*/                       {set_ppp_state,PPP_ACK_RECEIVED_STATE},	/* CLOSE */                      {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                  send_termination_request,	                                                PPP_CLOSING_STATE},	/* TIMEOUT_WITH_COUNTER_GREATER*/{send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* TIMEOUT_WITH_COUNTER_EXPIRED*/{this_layer_finished,	                                                PPP_STOPPED_STATE},	/* RX */	/* CONFIGURE_REQUEST_GOOD */     {send_configuration_ack,	                                                NO_CHANGE_TO_PPP_STATE,	                                  this_layer_up,PPP_OPENED_STATE},	/* CONFIGURE_REQUEST_BAD */      {send_configuration_nak,	                                                PPP_ACK_RECEIVED_STATE},	/* CONFIGURE_REQUEST_BAD_OPTION	*/{send_configuration_reject,	                                                PPP_ACK_RECEIVED_STATE},	/* CONFIGURE_ACK */              {send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_NAK */              {send_configuration_request,                                                        PPP_REQUEST_SENT_STATE},	/* CONFIGURE_REJECT */           {send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* TERMINATE_REQUEST */          {send_termination_ack,	                                                PPP_REQUEST_SENT_STATE},	/* TERMINATE_ACK */              {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* UNKNOWN_CODE	*/               {send_code_reject,	                                                PPP_ACK_RECEIVED_STATE},	/* CODE_REJECT_PERMITTED */      {set_ppp_state,	                                                PPP_REQUEST_SENT_STATE},	/* PROTOCOL_REJECT */            {set_ppp_state,PPP_REQUEST_SENT_STATE},	/* CODE_REJECT_CATASTROPHIC */  {this_layer_finished,PPP_STOPPED_STATE},	/* ECHO_REQUEST */               {set_ppp_state,PPP_ACK_RECEIVED_STATE},	/* ECHO_REPLY */                 {set_ppp_state,PPP_ACK_RECEIVED_STATE},	/* DISCARD_REQUEST */            {set_ppp_state,PPP_ACK_RECEIVED_STATE},	/* PPP_ECHO_RESPONSE_TIMEOUT */  {null_state,ILLEGAL_PPP_STATE},	/* PPP_ECHO_RESPONSE_FAILURE */  {null_state,ILLEGAL_PPP_STATE}	},	{	/* ----------------------------------------------------------------- */	/* ACK_SENT state: 8                                                 */	/* ----------------------------------------------------------------- */	/* UP */                         {null_state,ILLEGAL_PPP_STATE}, 	/* DOWN	*/                       {set_ppp_state,PPP_STARTING_STATE},	/* OPEN */                       {set_ppp_state,PPP_ACK_SENT_STATE},	/* CLOSE */                      {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                  send_termination_request,	                                                PPP_CLOSING_STATE},	/* TIMEOUT_WITH_COUNTER_GREATER */{send_configuration_request,	                                                PPP_ACK_SENT_STATE},	/* TIMEOUT_WITH_COUNTER_EXPIRED */{this_layer_finished,	                                                PPP_STOPPED_STATE},	/* RX */	/* CONFIGURE_REQUEST_GOOD */      {send_configuration_ack,	                                                PPP_ACK_SENT_STATE},	/* CONFIGURE_REQUEST_BAD */       {send_configuration_nak,	                                                PPP_ACK_RECEIVED_STATE},	/* CONFIGURE_REQUEST_BAD_OPTION */{send_configuration_reject,	                                                PPP_ACK_RECEIVED_STATE},	/* CONFIGURE_ACK */               {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                        this_layer_up,PPP_OPENED_STATE},	/* CONFIGURE_NAK */               {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,                                                        PPP_ACK_SENT_STATE},	/* CONFIGURE_REJECT */            {initialize_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                PPP_ACK_SENT_STATE},	/* TERMINATE_REQUEST */	          {send_termination_ack,	                                                PPP_REQUEST_SENT_STATE},	/* TERMINATE_ACK */               {set_ppp_state,PPP_ACK_SENT_STATE},	/* UNKNOWN_CODE	*/                {send_code_reject,PPP_ACK_SENT_STATE},	/* CODE_REJECT_PERMITTED */       {set_ppp_state,PPP_ACK_SENT_STATE},	/* PROTOCOL_REJECT */             {set_ppp_state,PPP_ACK_SENT_STATE},	/* CODE_REJECT_CATASTROPHIC */	  {this_layer_finished,	                                                PPP_STOPPED_STATE},	/* ECHO_REQUEST */                {set_ppp_state,PPP_ACK_SENT_STATE},	/* ECHO_REPLY */                  {set_ppp_state,PPP_ACK_SENT_STATE},	/* DISCARD_REQUEST */             {set_ppp_state,PPP_ACK_SENT_STATE},	/* PPP_ECHO_RESPONSE_TIMEOUT */   {null_state,ILLEGAL_PPP_STATE},	/* PPP_ECHO_RESPONSE_FAILURE */   {null_state,ILLEGAL_PPP_STATE}	},	{	/* ----------------------------------------------------------------- */	/* OPENED state: 9                                                   */	/* ----------------------------------------------------------------- */	/* UP */                          {null_state,ILLEGAL_PPP_STATE},	/* DOWN */                        {this_layer_down,PPP_STARTING_STATE},	/* OPEN */                        {set_ppp_state,PPP_OPENED_STATE},	/* CLOSE */                       {this_layer_down,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   initialize_restart_counter,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_termination_request,	                                                 PPP_CLOSING_STATE},	/* TIMEOUT_WITH_COUNTER_GREATER */{null_state,ILLEGAL_PPP_STATE},	/* TIMEOUT_WITH_COUNTER_EXPIRED	*/{null_state,ILLEGAL_PPP_STATE},	/* RX */	/* CONFIGURE_REQUEST_GOOD */      {this_layer_down,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_ack,	                                                 PPP_ACK_SENT_STATE},	/* CONFIGURE_REQUEST_BAD */       {this_layer_down,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_nak,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_REQUEST_BAD_OPTION */{this_layer_down,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_reject,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_ACK */               {this_layer_down,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_NAK */               {this_layer_down,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* CONFIGURE_REJECT */            {this_layer_down,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* TERMINATE_REQUEST */           {this_layer_down,	                                                NO_CHANGE_TO_PPP_STATE,	                                   zero_restart_counter,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_termination_ack,	                                                PPP_STOPPING_STATE},	/* TERMINATE_ACK */               {this_layer_down,	                                                NO_CHANGE_TO_PPP_STATE,	                                   send_configuration_request,	                                                PPP_REQUEST_SENT_STATE},	/* UNKNOWN_CODE */                {send_code_reject,	                                                PPP_OPENED_STATE},	/* CODE_REJECT_PERMITTED */       {set_ppp_state,PPP_OPENED_STATE},	/* PROTOCOL_REJECT */             {set_ppp_state,PPP_OPENED_STATE},	/* CODE_REJECT_CATASTROPHIC */    {this_layer_down,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   initialize_restart_counter,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_termination_request,	                                                 PPP_STOPPING_STATE},	/* ECHO_REQUEST */                {send_echo_reply,PPP_OPENED_STATE},				/* ECHO_REPLY */                  {set_ppp_state,PPP_OPENED_STATE},	/* DISCARD_REQUEST */             {set_ppp_state,PPP_OPENED_STATE},	/* PPP_ECHO_RESPONSE_TIMEOUT */	  {send_echo_request,PPP_OPENED_STATE},	/* PPP_ECHO_RESPONSE_FAILURE */   {this_layer_down,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   initialize_restart_counter,	                                                 NO_CHANGE_TO_PPP_STATE,	                                   send_termination_request,	                                                 PPP_STOPPING_STATE}	}    };/******************************************************************************** execute_ppp_state_machine -*/void execute_ppp_state_machine    (    PFW_PLUGIN_OBJ_STATE * pluginState,    PPP_EVENT ppp_event,    M_BLK_ID pMblk    )    {    PPP_CONTROL_PROTOCOL_STATE_DATA *pStateData = 	    (PPP_CONTROL_PROTOCOL_STATE_DATA *)pluginState->stackData;    PPP_STATE original_state;    if (pStateData != NULL)	original_state = pStateData->state;    else	return;    if (state_machine_table[original_state][ppp_event].end_state == 	ILLEGAL_PPP_STATE)	{	printf("PPP: %s: Illegal transition; state %d, Event %d, stack 0x%x\n",		pluginState->pluginObj->name, original_state,		(USHORT) ppp_event,(UINT32)pluginState->stackObj);	if (pMblk != NULL)	    netMblkClChainFree (pMblk);	return;	}    if (state_machine_table[original_state][ppp_event].fptr_state_function != 	NULL)	{	(*state_machine_table[original_state][ppp_event].fptr_state_function)	    (pluginState, pMblk,		state_machine_table[original_state][ppp_event].end_state);	if ((state_machine_table[original_state][ppp_event].end_state != 		NO_CHANGE_TO_PPP_STATE) &&	    (state_machine_table[original_state][ppp_event].fptr_state_function		!= set_ppp_state))	    {	    set_ppp_state (pluginState,NULL,		    state_machine_table[original_state][ppp_event].end_state);	    }	}    if (state_machine_table[original_state][ppp_event].fptr_state_function_1 != 	NULL)	{	(*state_machine_table[original_state][ppp_event].fptr_state_function_1)		(pluginState,pMblk,		state_machine_table[original_state][ppp_event].end_state_1);	if ((state_machine_table[original_state][ppp_event].end_state_1 != 		NO_CHANGE_TO_PPP_STATE) &&	   (state_machine_table[original_state][ppp_event].fptr_state_function_1		!= set_ppp_state))	    {	    set_ppp_state (pluginState,NULL,		    state_machine_table[original_state][ppp_event].end_state_1);	    }	}    if (state_machine_table[original_state][ppp_event].fptr_state_function_2 != 	NULL)	{	(*state_machine_table[original_state][ppp_event].fptr_state_function_2)		(pluginState,pMblk,		state_machine_table[original_state][ppp_event].end_state_2);	if ((state_machine_table[original_state][ppp_event].end_state_2 != 		NO_CHANGE_TO_PPP_STATE) &&	   (state_machine_table[original_state][ppp_event].fptr_state_function_2		!= set_ppp_state))	    {	    set_ppp_state (pluginState,NULL,		    state_machine_table[original_state][ppp_event].end_state_2);	    }	}    pStateData->old_state = (BYTE_ENUM (PPP_STATE)) original_state;    }/******************************************************************************** set_ppp_state -*/void set_ppp_state    (    PFW_PLUGIN_OBJ_STATE * pluginState,    M_BLK_ID  pMblk,    PPP_STATE end_state

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -