• 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 static int std_rcv_pado(struct session* ses,
23 if(ses->state != PADO_CODE ){
24 poe_error(ses,"Unexpected packet: %P",p_in);
28 if( verify_packet(ses, p_in) < 0)
32 poe_dbglog (ses,"PADO received: %P", p_in);
34 memcpy(&ses->remote, &p_in->addr, sizeof(struct sockaddr_ll));
35 memcpy(&ses->curr_pkt.addr, &ses->remote , sizeof(struct sockaddr_ll));
37 ses->curr_pkt.hdr->code = PADR_CODE;
40 /* if(ses->filt->htag) */
41 copy_tag(&ses->curr_pkt,get_tag(p_in->hdr,PTT_HOST_UNIQ));
43 if (ses->filt->ntag) {
44 ses->curr_pkt.tags[TAG_AC_NAME]=NULL;
59 if(ses->filt->stag) {
60 ses->curr_pkt.tags[TAG_SRV_NAME]=NULL;
62 copy_tag(&ses->curr_pkt,get_tag(p_in->hdr,PTT_SRV_NAME));
64 copy_tag(&ses->curr_pkt,get_tag(p_in->hdr,PTT_AC_COOKIE));
65 copy_tag(&ses->curr_pkt,get_tag(p_in->hdr,PTT_RELAY_SID));
67 ses->state = PADS_CODE;
69 ses->retransmits = 0;
71 send_disc(ses, &ses->curr_pkt);
72 (*p_out) = &ses->curr_pkt;
75 poe_dbglog (ses,"Sent PADR: %P", *p_out);
77 if (ses->np)
83 static int std_init_disc(struct session* ses,
88 if( ses->state != PADO_CODE ){
92 memset(&ses->curr_pkt,0, sizeof(struct pppoe_packet));
94 ses->curr_pkt.hdr = (struct pppoe_hdr*) ses->curr_pkt.buf;
95 ses->curr_pkt.hdr->ver = 1;
96 ses->curr_pkt.hdr->type = 1;
97 ses->curr_pkt.hdr->code = PADI_CODE;
100 memcpy( &ses->curr_pkt.addr, &ses->remote , sizeof(struct sockaddr_ll));
102 poe_info (ses,"Sending PADI");
104 // poe_dbglog (ses,"Sending PADI");
107 ses->retransmits = 0 ;
109 if(ses->filt->ntag) {
110 ses->curr_pkt.tags[TAG_AC_NAME]=ses->filt->ntag;
111 poe_info(ses,"overriding AC name\n");
114 if(ses->filt->stag)
115 ses->curr_pkt.tags[TAG_SRV_NAME]=ses->filt->stag;
117 if(ses->filt->htag)
118 ses->curr_pkt.tags[TAG_HOST_UNIQ]=ses->filt->htag;
120 ses->retransmits = 0 ;
122 send_disc(ses, &ses->curr_pkt);
123 (*p_out)= &ses->curr_pkt;
126 poe_dbglog (ses,"Sent PADI: %P", *p_out);
132 static int std_rcv_pads(struct session* ses,
135 if(ses->state != PADS_CODE ){
136 poe_error(ses,"Unexpected packet: %P",p_in);
140 if( verify_packet(ses, p_in) < 0)
144 poe_dbglog (ses,"PADS received: %P", p_in);
146 ses->sp.sa_family = AF_PPPOX;
147 ses->sp.sa_protocol = PX_PROTO_OE;
148 ses->sp.sa_addr.pppoe.sid = p_in->hdr->sid;
149 memcpy(ses->sp.sa_addr.pppoe.dev,ses->name, IFNAMSIZ);
150 memcpy(ses->sp.sa_addr.pppoe.remote, p_in->addr.sll_addr, ETH_ALEN);
153 poe_dbglog (ses,"Got connection: %x %s <--->%E",
154 ses->sp.sa_addr.pppoe.sid,
155 ses->sp.sa_addr.pppoe.dev, ses->sp.sa_addr.pppoe.remote);
160 static int std_rcv_padt(struct session* ses,
163 ses->state = PADO_CODE;
169 int client_init_ses (struct session *ses, char* devnam)
178 // poe_info (ses,"init_ses: creating socket");
188 poe_fatal(ses,
198 /* Verify the device name , construct ses->local */
199 retval = get_sockaddr_ll(devnam,&ses->local);
201 poe_fatal(ses, "client_init_ses: "
205 ses->state = PADO_CODE;
206 memcpy(&ses->remote, &ses->local, sizeof(struct sockaddr_ll) );
208 memset( ses->remote.sll_addr, 0xff, ETH_ALEN);
212 /* Verify the device name , construct ses->local */
213 retval = get_sockaddr_ll(dev,&ses->local);
215 poe_fatal(ses,"client_init_ses(2): "
217 ses->state = PADS_CODE;
218 ses->sp.sa_family = AF_PPPOX;
219 ses->sp.sa_protocol = PX_PROTO_OE;
220 ses->sp.sa_addr.pppoe.sid = sid;
222 memcpy(&ses->remote, &ses->local, sizeof(struct sockaddr_ll) );
225 ses->sp.sa_addr.pppoe.remote[i] = addr[i];
226 ses->remote.sll_addr[i]=addr[i];
228 memcpy(ses->sp.sa_addr.pppoe.dev, dev, IFNAMSIZ);
238 poe_dbglog (ses,"Local ETH %E", ses->local.sll_addr);
242 (struct sockaddr*)&ses->local,
251 if (ses->fd < 0) {
252 ses->fd = socket(AF_PPPOX,SOCK_STREAM,PX_PROTO_OE);
253 if(ses->fd < 0)
255 poe_fatal(ses,"Failed to create PPPoE socket: %m");
260 ses->init_disc = std_init_disc;
261 ses->rcv_pado = std_rcv_pado;
262 ses->rcv_pads = std_rcv_pads;
263 ses->rcv_padt = std_rcv_padt;
266 ses->retries = retry_num;
268 return ses->fd;