📜  点对点协议(PPP)自动机动作

📅  最后修改于: 2021-08-25 10:41:22             🧑  作者: Mango

动作基本上是有限状态自动机的属性之一。当点对点协议(PPP)连接从一种状态转换为另一种状态时,由于某些事件而在自动化中采取了某些措施。采取行动通常是事件的结果,但每个事件都不会导致采取行动。这些操作如下:

  1. 非法事件(-):
    顾名思义,非法事件仅表示无法发生的事件,由于某些错误而属非法的事件,应予以报告。
  2. tlu:
    该动作标签的意思是“上一层”。该动作仅向上层指示自动化正在简单地进入打开状态。此操作的实现方式如下:
    if (f->callbacks->up)
    (*f->callbacks->up)(f); 
  3. tld:
    该动作标签的意思是“向下一层”。此操作只是向上层指示自动化只是处于打开状态。此操作的实现方式如下:
    if( f->callbacks->down )  
    (*f->callbacks->down)(f);
  4. tls:
    该动作标签的意思是“此层已开始”。该操作仅表示在自动化进入启动状态时,连接或链接所需的较低层。此操作的结果是高度依赖于实现的结果。此操作的实现方式如下:
    if( f->callbacks->starting )
    (*f->callbacks->starting) (f);
  5. tlf:
    该动作标签的意思是“此层已完成”。此操作只是表明较低的层,因为自动化进入“初始”,“关闭”或“已停止”状态时,不再需要它们进行连接或链接。此操作的结果是高度依赖于实现的结果。此操作的实现方式如下:
    if( f->callbacks->finished )
    (*f->callbacks->finished)(f);
  6. irc:
    该操作标签的意思是“初始化重启计数”。重新启动计数器通常设置为正确的值,即此操作的结果是Max-Terminate或Max-Configure。对于每个传输,包括第一传输在内的计数器都会递减。此操作的实现方式如下:
    TIMEOUT(fsm_timeout, f, f->timeouttime);
  7. zrc:
    该操作标签表示“零重启计数”。由于此操作,重新启动计数器通常设置为零。此操作的实现方式如下:
    UNTIMEOUT(fsm_timeout, f);
  8. scr:
    该操作标签的意思是“发送配置请求”。该动作表示希望正在发送配置请求数据包,因此需要与某些指定的配置选项集一起打开链接或连接。每当发送配置请求数据包时,重新启动计时器都会启动。这只是开始检查是否有任何数据包丢失。此操作的实现方式如下:
    fsm_sconfreq(f, 0) and
    fsm_sdata(f, CONFREQ, f->reqid, outp, cilen)
  9. sca:
    该操作标签的意思是“发送配置确认”。每当传输配置确认数据包时,此操作都会确认已收到配置请求数据包以及良好的配置选项集。此操作的实现方式如下:
    fsm_sdata(f, CONFACK, id, inp, len);
  10. scn:此操作标签的意思是“发送配置nak / rej”。每当传输configure-nak或configure-reject数据包时,此操作都会确认已收到configure-request数据包以及错误的配置选项集。此操作的实现方式如下:
    fsm_sdata(f, CODEREJ, +>id, inpacket, len + HEADERLEN);
  11. str:
    该操作标签的意思是“发送终止请求”。该动作表示希望发送终止请求分组,因此需要关闭链接或连接。每当发送配置请求数据包时,重新启动计时器都会启动。这只是开始检查是否有任何数据包丢失。此操作的实现方式如下:
    fsm_sdata(f, TERMREQ, f->reqid = +>id,  
    (u_char *) f->term_reason, f->term_reason_len);
  12. sta:
    该操作标签的意思是“发送终止确认”。每当发送终止终止数据包时,此操作就会确认终止请求数据包的接收。此操作的实现方式如下:
    fsm_sdata(f, TERMACK, id, NULL, 0);