| 
    Zephyr Project API
    3.4.0
    
   A Scalable Open Source RTOS 
   | 
 
#include <ppp.h>
Data Fields | |
| struct k_work_delayable | timer | 
| struct { | |
|    int(*   config_info_ack )(struct ppp_fsm *fsm, struct  net_pkt *pkt, uint16_t length)  | |
| struct net_pkt *(* config_info_add )(struct ppp_fsm *fsm) | |
| int(* config_info_len )(struct ppp_fsm *fsm) | |
|    int(*   config_info_nack )(struct ppp_fsm *fsm, struct  net_pkt *pkt, uint16_t length, bool rejected)  | |
|    int(*   config_info_req )(struct ppp_fsm *fsm, struct  net_pkt *pkt, uint16_t length, struct net_pkt *ret_pkt)  | |
|    int(*   config_info_rej )(struct ppp_fsm *fsm, struct  net_pkt *pkt, uint16_t length)  | |
| void(* config_info_reset )(struct ppp_fsm *fsm) | |
| void(* up )(struct ppp_fsm *fsm) | |
| void(* down )(struct ppp_fsm *fsm) | |
| void(* starting )(struct ppp_fsm *fsm) | |
| void(* finished )(struct ppp_fsm *fsm) | |
| void(* proto_reject )(struct ppp_fsm *fsm) | |
| void(* retransmit )(struct ppp_fsm *fsm) | |
|    enum net_verdict(*   proto_extension )(struct ppp_fsm *fsm, enum  ppp_packet_type code, uint8_t id, struct net_pkt *pkt)  | |
| } | cb | 
| struct { | |
| const struct ppp_my_option_info * info | |
| struct ppp_my_option_data * data | |
| size_t count | |
| } | my_options | 
| uint32_t | flags | 
| uint32_t | retransmits | 
| uint32_t | nack_loops | 
| uint32_t | recv_nack_loops | 
| char | terminate_reason [32] | 
| uint16_t | protocol | 
| enum ppp_state | state | 
| const char * | name | 
| uint8_t | id | 
| uint8_t | req_id | 
| uint8_t | ack_received: 1 | 
Generic PPP Finite State Machine
| uint8_t ppp_fsm::ack_received | 
Have received valid Ack, Nack or Reject to a Request
| struct { ... } ppp_fsm::cb | 
Acknowledge Configuration Information
| int(* ppp_fsm::config_info_len) (struct ppp_fsm *fsm) | 
Length of Configuration Information
| int(* ppp_fsm::config_info_nack) (struct ppp_fsm *fsm, struct net_pkt *pkt, uint16_t length, bool rejected) | 
Negative Acknowledge Configuration Information
Reject Configuration Information
| int(* ppp_fsm::config_info_req) (struct ppp_fsm *fsm, struct net_pkt *pkt, uint16_t length, struct net_pkt *ret_pkt) | 
Request peer's Configuration Information
| void(* ppp_fsm::config_info_reset) (struct ppp_fsm *fsm) | 
Reset Configuration Information
| size_t ppp_fsm::count | 
Number of negotiated options
| struct ppp_my_option_data* ppp_fsm::data | 
Options negotiation data
| void(* ppp_fsm::down) (struct ppp_fsm *fsm) | 
FSM leaves OPENED state
| void(* ppp_fsm::finished) (struct ppp_fsm *fsm) | 
Quitting this protocol
| uint32_t ppp_fsm::flags | 
Option bits
| uint8_t ppp_fsm::id | 
Current id
| const struct ppp_my_option_info* ppp_fsm::info | 
Options information
| struct { ... } ppp_fsm::my_options | 
| uint32_t ppp_fsm::nack_loops | 
Number of NACK loops since last ACK
| const char* ppp_fsm::name | 
Protocol/layer name of this FSM (for debugging)
| enum net_verdict(* ppp_fsm::proto_extension) (struct ppp_fsm *fsm, enum ppp_packet_type code, uint8_t id, struct net_pkt *pkt) | 
Any code that is not understood by PPP is passed to this FSM for further processing.
| void(* ppp_fsm::proto_reject) (struct ppp_fsm *fsm) | 
We received Protocol-Reject
| uint16_t ppp_fsm::protocol | 
PPP protocol number for this FSM
| uint32_t ppp_fsm::recv_nack_loops | 
Number of NACKs received
| uint8_t ppp_fsm::req_id | 
Current request id
| void(* ppp_fsm::retransmit) (struct ppp_fsm *fsm) | 
Retransmit
| uint32_t ppp_fsm::retransmits | 
Number of re-transmissions left
| void(* ppp_fsm::starting) (struct ppp_fsm *fsm) | 
Starting this protocol
| enum ppp_state ppp_fsm::state | 
Current state of PPP link
| char ppp_fsm::terminate_reason[32] | 
Reason for closing protocol
| struct k_work_delayable ppp_fsm::timer | 
Timeout timer
| void(* ppp_fsm::up) (struct ppp_fsm *fsm) | 
FSM goes to OPENED state