PPP, PPPoS, moved pcomp and accomp only used by PPPoS to PPPoS

This commit is contained in:
Sylvain Rochet 2015-03-10 23:51:32 +01:00
parent 31aea3c996
commit 02598d1e91
5 changed files with 19 additions and 18 deletions

View File

@ -328,8 +328,6 @@ struct ppp_pcb_s {
u8_t err_code; /* Code indicating why interface is down. */
/* flags */
unsigned int pcomp :1; /* Does peer accept protocol compression? */
unsigned int accomp :1; /* Does peer accept addr/ctl compression? */
#if PPP_IPV4_SUPPORT
unsigned int ipcp_is_open :1; /* haven't called np_finished() */
unsigned int ipcp_is_up :1; /* have called ipcp_up() */
@ -347,6 +345,7 @@ struct ppp_pcb_s {
unsigned int :2; /* 2 bit of padding */
#endif /* PPP_IPV6_SUPPORT */
unsigned int lcp_echo_timer_running :1; /* set if a timer is running */
unsigned int :2; /* 2 bits of padding to round out to 8 bits */
u32_t last_xmit; /* Time of last transmission. */

View File

@ -156,9 +156,9 @@ struct link_callbacks {
/* Send a packet from lwIP core (IPv4 or IPv6) */
err_t (*netif_output)(ppp_pcb *pcb, void *ctx, struct pbuf *p, u_short protocol);
/* configure the transmit-side characteristics of the PPP interface */
void (*send_config)(ppp_pcb *pcb, void *ctx, u32_t accm);
void (*send_config)(ppp_pcb *pcb, void *ctx, u32_t accm, int pcomp, int accomp);
/* confire the receive-side characteristics of the PPP interface */
void (*recv_config)(ppp_pcb *pcb, void *ctx, u32_t accm);
void (*recv_config)(ppp_pcb *pcb, void *ctx, u32_t accm, int pcomp, int accomp);
#if VJ_SUPPORT
/* configure TCP header compression */
void (*vj_config)(ppp_pcb *pcb, void *ctx, int vjcomp, int cidcomp, int maxcid);

View File

@ -78,12 +78,14 @@ struct pppos_pcb_s {
/* flags */
unsigned int open :1; /* Set if PPPoS is open */
unsigned int pcomp :1; /* Does peer accept protocol compression? */
unsigned int accomp :1; /* Does peer accept addr/ctl compression? */
#if VJ_SUPPORT
unsigned int vj_enabled :1; /* Flag indicating VJ compression enabled. */
#else
unsigned int :1; /* 1 bit of padding */
#endif /* VJ_SUPPORT */
unsigned int :6; /* 6 bits of padding to round out to 8 bits */
unsigned int :4; /* 4 bits of padding to round out to 8 bits */
/* PPPoS rx */
ext_accm in_accm; /* Async-Ctl-Char-Map for input. */

View File

@ -827,13 +827,10 @@ void new_phase(ppp_pcb *pcb, int p) {
*/
int ppp_send_config(ppp_pcb *pcb, int mtu, u32_t accm, int pcomp, int accomp) {
LWIP_UNUSED_ARG(mtu);
/* pcb->mtu = mtu; -- set correctly with netif_set_mtu */
pcb->pcomp = pcomp;
pcb->accomp = accomp;
if (pcb->link_cb->send_config) {
pcb->link_cb->send_config(pcb, pcb->link_ctx_cb, accm);
pcb->link_cb->send_config(pcb, pcb->link_ctx_cb, accm, pcomp, accomp);
}
PPPDEBUG(LOG_INFO, ("ppp_send_config[%d]\n", pcb->netif->num) );
@ -845,12 +842,10 @@ int ppp_send_config(ppp_pcb *pcb, int mtu, u32_t accm, int pcomp, int accomp) {
* the ppp interface.
*/
int ppp_recv_config(ppp_pcb *pcb, int mru, u32_t accm, int pcomp, int accomp) {
LWIP_UNUSED_ARG(accomp);
LWIP_UNUSED_ARG(pcomp);
LWIP_UNUSED_ARG(mru);
if (pcb->link_cb->recv_config) {
pcb->link_cb->recv_config(pcb, pcb->link_ctx_cb, accm);
pcb->link_cb->recv_config(pcb, pcb->link_ctx_cb, accm, pcomp, accomp);
}
PPPDEBUG(LOG_INFO, ("ppp_recv_config[%d]\n", pcb->netif->num));

View File

@ -59,8 +59,8 @@ static err_t pppos_listen(ppp_pcb *ppp, void *ctx, struct ppp_addrs *addrs);
#endif /* PPP_SERVER */
static void pppos_disconnect(ppp_pcb *ppp, void *ctx);
static err_t pppos_destroy(ppp_pcb *ppp, void *ctx);
static void pppos_send_config(ppp_pcb *ppp, void *ctx, u32_t accm);
static void pppos_recv_config(ppp_pcb *ppp, void *ctx, u32_t accm);
static void pppos_send_config(ppp_pcb *ppp, void *ctx, u32_t accm, int pcomp, int accomp);
static void pppos_recv_config(ppp_pcb *ppp, void *ctx, u32_t accm, int pcomp, int accomp);
static err_t pppos_ioctl(ppp_pcb *pcb, void *ctx, int cmd, void *arg);
#if VJ_SUPPORT
static void pppos_vjc_config(ppp_pcb *ppp, void *ctx, int vjcomp, int cidcomp, int maxcid);
@ -328,13 +328,13 @@ pppos_netif_output(ppp_pcb *ppp, void *ctx, struct pbuf *pb, u_short protocol)
}
ppp->last_xmit = sys_jiffies();
if (!ppp->accomp) {
if (!pppos->accomp) {
fcs_out = PPP_FCS(fcs_out, PPP_ALLSTATIONS);
tail = pppos_append(PPP_ALLSTATIONS, tail, &pppos->out_accm);
fcs_out = PPP_FCS(fcs_out, PPP_UI);
tail = pppos_append(PPP_UI, tail, &pppos->out_accm);
}
if (!ppp->pcomp || protocol > 0xFF) {
if (!pppos->pcomp || protocol > 0xFF) {
c = (protocol >> 8) & 0xFF;
fcs_out = PPP_FCS(fcs_out, c);
tail = pppos_append(c, tail, &pppos->out_accm);
@ -787,12 +787,15 @@ drop:
#endif /* PPP_INPROC_MULTITHREADED */
static void
pppos_send_config(ppp_pcb *ppp, void *ctx, u32_t accm)
pppos_send_config(ppp_pcb *ppp, void *ctx, u32_t accm, int pcomp, int accomp)
{
int i;
pppos_pcb *pppos = (pppos_pcb *)ctx;
LWIP_UNUSED_ARG(ppp);
pppos->pcomp = pcomp;
pppos->accomp = accomp;
/* Load the ACCM bits for the 32 control codes. */
for (i = 0; i < 32/8; i++) {
pppos->out_accm[i] = (u_char)((accm >> (8 * i)) & 0xFF);
@ -804,12 +807,14 @@ pppos_send_config(ppp_pcb *ppp, void *ctx, u32_t accm)
}
static void
pppos_recv_config(ppp_pcb *ppp, void *ctx, u32_t accm)
pppos_recv_config(ppp_pcb *ppp, void *ctx, u32_t accm, int pcomp, int accomp)
{
int i;
pppos_pcb *pppos = (pppos_pcb *)ctx;
PPPOS_DECL_PROTECT(lev);
LWIP_UNUSED_ARG(ppp);
LWIP_UNUSED_ARG(pcomp);
LWIP_UNUSED_ARG(accomp);
/* Load the ACCM bits for the 32 control codes. */
PPPOS_PROTECT(lev);