• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/ppp-2.4.4/pppd/plugins/rp-pppoe/

Lines Matching defs:conn

72 * conn -- PPPoE connection info
81 packetIsForMe(PPPoEConnection *conn, PPPoEPacket *packet)
86 if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
89 if (!conn->useHostUniq) return 1;
114 PPPoEConnection *conn = pc->conn;
120 if (conn->printACNames) {
123 if (conn->acName && len == strlen(conn->acName) &&
124 !strncmp((char *) data, conn->acName, len)) {
130 if (conn->printACNames && len > 0) {
133 if (conn->serviceName && len == strlen(conn->serviceName) &&
134 !strncmp((char *) data, conn->serviceName, len)) {
139 if (conn->printACNames) {
148 conn->cookie.type = htons(type);
149 conn->cookie.length = htons(len);
150 memcpy(conn->cookie.payload, data, len);
153 if (conn->printACNames) {
162 conn->relayId.type = htons(type);
163 conn->relayId.length = htons(len);
164 memcpy(conn->relayId.payload, data, len);
167 if (conn->printACNames) {
175 if (conn->printACNames) {
183 if (conn->printACNames) {
209 PPPoEConnection *conn = (PPPoEConnection *) extra;
227 conn->relayId.type = htons(type);
228 conn->relayId.length = htons(len);
229 memcpy(conn->relayId.payload, data, len);
237 * conn -- PPPoEConnection structure
244 sendPADI(PPPoEConnection *conn)
252 if (conn->serviceName) {
253 namelen = (UINT16_t) strlen(conn->serviceName);
260 memcpy(packet.ethHdr.h_source, conn->myEth, ETH_ALEN);
272 if (conn->serviceName) {
273 memcpy(svc->payload, conn->serviceName, strlen(conn->serviceName));
278 if (conn->useHostUniq) {
292 sendPacket(conn, conn->discoverySocket, &packet, (int) (plen + HDR_SIZE));
293 if (conn->debugFile) {
294 dumpPacket(conn->debugFile, &packet, "SENT");
295 fprintf(conn->debugFile, "\n");
296 fflush(conn->debugFile);
303 * conn -- PPPoEConnection structure
311 waitForPADO(PPPoEConnection *conn, int timeout)
320 pc.conn = conn;
321 pc.acNameOK = (conn->acName) ? 0 : 1;
322 pc.serviceNameOK = (conn->serviceName) ? 0 : 1;
332 FD_SET(conn->discoverySocket, &readable);
335 r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv);
345 receivePacket(conn->discoverySocket, &packet, &len);
359 if (conn->debugFile) {
360 dumpPacket(conn->debugFile, &packet, "RCVD");
361 fprintf(conn->debugFile, "\n");
362 fflush(conn->debugFile);
365 if (!packetIsForMe(conn, &packet)) continue;
381 conn->numPADOs++;
382 if (conn->printACNames) {
386 memcpy(conn->peerEth, packet.ethHdr.h_source, ETH_ALEN);
387 if (conn->printACNames) {
389 (unsigned) conn->peerEth[0],
390 (unsigned) conn->peerEth[1],
391 (unsigned) conn->peerEth[2],
392 (unsigned) conn->peerEth[3],
393 (unsigned) conn->peerEth[4],
394 (unsigned) conn->peerEth[5]);
397 conn->discoveryState = STATE_RECEIVED_PADO;
401 } while (conn->discoveryState != STATE_RECEIVED_PADO);
407 * conn -- PPPoE connection structur
414 sendPADR(PPPoEConnection *conn)
423 if (conn->serviceName) {
424 namelen = (UINT16_t) strlen(conn->serviceName);
429 memcpy(packet.ethHdr.h_dest, conn->peerEth, ETH_ALEN);
430 memcpy(packet.ethHdr.h_source, conn->myEth, ETH_ALEN);
440 if (conn->serviceName) {
441 memcpy(svc->payload, conn->serviceName, namelen);
446 if (conn->useHostUniq) {
459 if (conn->cookie.type) {
461 ntohs(conn->cookie.length) + TAG_HDR_SIZE);
462 memcpy(cursor, &conn->cookie, ntohs(conn->cookie.length) + TAG_HDR_SIZE);
463 cursor += ntohs(conn->cookie.length) + TAG_HDR_SIZE;
464 plen += ntohs(conn->cookie.length) + TAG_HDR_SIZE;
467 if (conn->relayId.type) {
469 ntohs(conn->relayId.length) + TAG_HDR_SIZE);
470 memcpy(cursor, &conn->relayId, ntohs(conn->relayId.length) + TAG_HDR_SIZE);
471 cursor += ntohs(conn->relayId.length) + TAG_HDR_SIZE;
472 plen += ntohs(conn->relayId.length) + TAG_HDR_SIZE;
476 sendPacket(conn, conn->discoverySocket, &packet, (int) (plen + HDR_SIZE));
477 if (conn->debugFile) {
478 dumpPacket(conn->debugFile, &packet, "SENT");
479 fprintf(conn->debugFile, "\n");
480 fflush(conn->debugFile);
487 * conn -- PPPoE connection info
495 waitForPADS(PPPoEConnection *conn, int timeout)
509 FD_SET(conn->discoverySocket, &readable);
512 r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv);
522 receivePacket(conn->discoverySocket, &packet, &len);
535 if (conn->debugFile) {
536 dumpPacket(conn->debugFile, &packet, "RCVD");
537 fprintf(conn->debugFile, "\n");
538 fflush(conn->debugFile);
542 if (memcmp(packet.ethHdr.h_source, conn->peerEth, ETH_ALEN)) continue;
545 if (!packetIsForMe(conn, &packet)) continue;
550 parsePacket(&packet, parsePADSTags, conn);
551 conn->discoveryState = STATE_SESSION;
554 } while (conn->discoveryState != STATE_SESSION);
557 conn->session = packet.session;
559 syslog(LOG_INFO, "PPP session is %d", (int) ntohs(conn->session));
562 if (ntohs(conn->session) == 0 || ntohs(conn->session) == 0xFFFF) {
563 syslog(LOG_ERR, "Access concentrator used a session value of %x -- the AC is violating RFC 2516", (unsigned int) ntohs(conn->session));
570 * conn -- PPPoE connection info structure
577 discovery(PPPoEConnection *conn)
584 if (conn->skipDiscovery && conn->noDiscoverySocket) {
585 conn->discoveryState = STATE_SESSION;
589 conn->discoverySocket =
590 openInterface(conn->ifName, Eth_PPPOE_Discovery, conn->myEth);
593 if (conn->skipDiscovery) {
594 conn->discoveryState = STATE_SESSION;
602 close(conn->discoverySocket);
603 conn->discoverySocket = -1;
606 sendPADI(conn);
607 conn->discoveryState = STATE_SENT_PADI;
608 waitForPADO(conn, timeout);
613 if (!conn->printACNames) {
616 if (conn->printACNames && conn->numPADOs) {
619 } while (conn->discoveryState == STATE_SENT_PADI);
622 if (conn->printACNames) {
631 close(conn->discoverySocket);
632 conn->discoverySocket = -1;
635 sendPADR(conn);
636 conn->discoveryState = STATE_SENT_PADR;
637 waitForPADS(conn, timeout);
639 } while (conn->discoveryState == STATE_SENT_PADR);
642 conn->discoveryState = STATE_SESSION;