• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asus-wl-520gu-7.0.1.45/src/router/ppp/pppd/plugins/pppoe/

Lines Matching defs:ses

16 int verify_packet( struct session *ses, struct pppoe_packet *p);
158 static int verify_tag(struct session* ses,
168 poe_info(ses,"Missing tag %d. Expected %s\n",
174 poe_info(ses,"Length mismatch on tag %d: expect: %d got: %d\n",
180 poe_info(ses,"Tag data mismatch on tag %d: expect: %s vs %s\n",
246 int send_disc(struct session *ses, struct pppoe_packet *p)
290 &ses,
333 poe_error(ses,"sendto returned: %m\n");
343 int verify_packet( struct session *ses, struct pppoe_packet *p){
353 poe_error(ses,"Tag error: " #name ); \
359 if (ses->state == PADS_CODE) {
360 if (memcmp(p->addr.sll_addr, ses->remote.sll_addr, ETH_ALEN)) {
361 poe_info(ses,"ETH_DEST mismatch: %E %E \n",p->addr.sll_addr, ses->remote.sll_addr);
375 if( hu_val != ses ){
376 poe_info(ses,"HOST_UNIQ mismatch: %08x %i\n",(int)hu_val,getpid());
380 if(ses->filt->htag &&
381 !verify_tag(ses,p,TAG_HOST_UNIQ,ses->filt->htag->tag_data,(int)ntohs(ses->filt->htag->tag_len))) {
382 poe_info(ses,"HOST_UNIQ failure");
387 if(ses->filt->ntag && ses->state == PADO_CODE &&
388 !verify_tag(ses,p,TAG_AC_NAME,ses->filt->ntag->tag_data,(int)ntohs(ses->filt->ntag->tag_len))){
389 poe_info(ses,"AC_NAME failure");
393 if(ses->filt->stag &&
394 !verify_tag(ses,p,TAG_SRV_NAME,ses->filt->stag->tag_data,(int)ntohs(ses->filt->stag->tag_len))){
395 poe_info(ses,"SRV_NAME failure");
408 static int recv_disc( struct session *ses,
431 int session_disconnect(struct session *ses){
435 memcpy(&padt.addr, &ses->remote, sizeof(struct sockaddr_ll));
437 padt.hdr = (struct pppoe_hdr*) ses->curr_pkt.buf;
441 padt.hdr->sid = ses->sp.sa_addr.pppoe.sid;
443 send_disc(ses,&padt);
444 ses->sp.sa_addr.pppoe.sid = 0 ;
445 ses->state = PADO_CODE;
453 * Make a connection -- behaviour depends on callbacks specified in "ses"
456 int session_connect(struct session *ses)
464 if(ses->init_disc){
465 ret = (*ses->init_disc)(ses, NULL, &p_out);
472 while(ses->retransmits < ses->retries || ses->retries==-1 ){
480 if(ses->retransmits < 0)
483 ++ses->retransmits;
484 //tv.tv_sec = 1 << ses->retransmits;
495 poe_dbglog(ses, "Re-sending ...");
497 if( ses->timeout ) {
498 ret = (*ses->timeout)(ses, NULL, &p_out);
503 send_disc(ses,p_out);
508 ret = recv_disc(ses, &rcv_packet);
518 if(ses->rcv_padi){
519 ret = (*ses->rcv_padi)(ses,&rcv_packet,&p_out);
530 if(ses->rcv_pado){
531 ret = (*ses->rcv_pado)(ses,&rcv_packet,&p_out);
544 if(ses->rcv_padr){
545 ret = (*ses->rcv_padr)(ses,&rcv_packet,&p_out);
556 if(ses->rcv_pads){
557 ret = (*ses->rcv_pads)(ses,&rcv_packet,&p_out);
570 if( rcv_packet.hdr->sid != ses->sp.sa_addr.pppoe.sid ){
571 --ses->retransmits;
574 if(ses->rcv_padt){
575 ret = (*ses->rcv_padt)(ses,&rcv_packet,&p_out);
583 poe_error (ses,"connection terminated");
589 poe_error(ses,"invalid packet %P",&rcv_packet);