int check_frame(unsigned char *outbuf, int res) { static int setup = 0; int x; unsigned short fcs = PPP_INITFCS; if (c < 1) { c = 1; } if (!setup) { c = outbuf[0]; setup++; } for (x = 0; x < res; x++) { if (outbuf[x] != c && (x < res - 2)) { printf("(Error %d): Unexpected result, %d != %d, position %d %d bytes since last error.\n", ++errors, outbuf[x], c, x, bytes); if (!x) { c = outbuf[0]; } bytes = 0; } else { bytes++; } fcs = PPP_FCS(fcs, outbuf[x]); } if (fcs != PPP_GOODFCS) { printf("FCS Check failed :( (%04x != %04x)\n", fcs, PPP_GOODFCS); } #if 0 if (res != c) { printf("Res is %d, expected %d\n", res, c+2); } #endif c = bit_next(c); return 0; }
int main(int argc, char *argv[]) { int fd; int res, x; DAHDI_PARAMS tp; int bs = BLOCK_SIZE; unsigned char c=0; unsigned char outbuf[BLOCK_SIZE]; int setup=0; int errors=0; int bytes=0; if (argc < 2) { fprintf(stderr, "Usage: markhdlctest <tor device>\n"); exit(1); } fd = open(argv[1], O_RDWR, 0600); if (fd < 0) { fprintf(stderr, "Unable to open %s: %s\n", argv[1], strerror(errno)); exit(1); } if (ioctl(fd, DAHDI_SET_BLOCKSIZE, &bs)) { fprintf(stderr, "Unable to set block size to %d: %s\n", bs, strerror(errno)); exit(1); } if (ioctl(fd, DAHDI_GET_PARAMS, &tp)) { fprintf(stderr, "Unable to get channel parameters\n"); exit(1); } ioctl(fd, DAHDI_GETEVENT); for(;;) { res = bs; res = read(fd, outbuf, res); if (res < bs) { int e; DAHDI_SPANINFO zi; res = ioctl(fd,DAHDI_GETEVENT,&e); if (res == -1) { perror("DAHDI_GETEVENT"); exit(1); } if (e == DAHDI_EVENT_NOALARM) printf("ALARMS CLEARED\n"); if (e == DAHDI_EVENT_ALARM) { zi.spanno = 0; res = ioctl(fd,DAHDI_SPANSTAT,&zi); if (res == -1) { perror("DAHDI_SPANSTAT"); exit(1); } printf("Alarm mask %x hex\n",zi.alarms); } continue; } if (!setup) { c = outbuf[0]; setup++; } for (x=0;x<bs;x++) { if (outbuf[x] != c) { printf("(Error %d): Unexpected result, %d != %d, %d bytes since last error.\n", ++errors, outbuf[x], c, bytes); c = outbuf[x]; bytes=0; } c = bit_next(c); bytes++; } #if 0 printf("(%d) Wrote %d bytes\n", packets++, res); #endif } }
int main(int argc, char *argv[]) { int fd; int res, x; int bs = BLOCK_SIZE; unsigned char c=0; unsigned char outbuf[BLOCK_SIZE]; int setup=0; int errors=0; int bytes=0; prog_name = argv[0]; if (argc < 2) { usage(); } fd = channel_open(argv[1], &bs); if (fd < 0) exit(1); ioctl(fd, DAHDI_GETEVENT); for(;;) { res = bs; res = read(fd, outbuf, res); if (res < bs) { int e; struct dahdi_spaninfo zi; res = ioctl(fd,DAHDI_GETEVENT,&e); if (res == -1) { perror("DAHDI_GETEVENT"); exit(1); } if (e == DAHDI_EVENT_NOALARM) printf("ALARMS CLEARED\n"); if (e == DAHDI_EVENT_ALARM) { zi.spanno = 0; res = ioctl(fd,DAHDI_SPANSTAT,&zi); if (res == -1) { perror("DAHDI_SPANSTAT"); exit(1); } printf("Alarm mask %x hex\n",zi.alarms); } continue; } if (!setup) { c = outbuf[0]; setup++; } for (x=0;x<bs;x++) { if (outbuf[x] != c) { printf("(Error %d): Unexpected result, %d != %d, %d bytes since last error.\n", ++errors, outbuf[x], c, bytes); c = outbuf[x]; bytes=0; } c = bit_next(c); bytes++; } #if 0 printf("(%d) Wrote %d bytes\n", packets++, res); #endif } }
int main(int argc, char *argv[]) { int fd; int res, res1, x; DAHDI_PARAMS tp; int bs = BLOCK_SIZE; unsigned char c=0; unsigned char outbuf[BLOCK_SIZE]; if (argc < 2) { fprintf(stderr, "Usage: %s <tor device>\n", argv[0]); exit(1); } fd = open(argv[1], O_RDWR, 0600); if (fd < 0) { fprintf(stderr, "Unable to open %s: %s\n", argv[1], strerror(errno)); exit(1); } if (ioctl(fd, DAHDI_SET_BLOCKSIZE, &bs)) { fprintf(stderr, "Unable to set block size to %d: %s\n", bs, strerror(errno)); exit(1); } if (ioctl(fd, DAHDI_GET_PARAMS, &tp)) { fprintf(stderr, "Unable to get channel parameters\n"); exit(1); } ioctl(fd, DAHDI_GETEVENT); #if 0 print_packet(outbuf, res); printf("FCS is %x, PPP_GOODFCS is %x\n", fcs,PPP_GOODFCS); #endif for(;;) { res = bs; for (x=0;x<bs;x++) { outbuf[x] = c; c = bit_next(c); } res1 = write(fd, outbuf, res); if (res1 < res) { int e; DAHDI_SPANINFO zi; res = ioctl(fd,DAHDI_GETEVENT,&e); if (res == -1) { perror("DAHDI_GETEVENT"); exit(1); } if (e == DAHDI_EVENT_NOALARM) printf("ALARMS CLEARED\n"); if (e == DAHDI_EVENT_ALARM) { zi.spanno = 0; res = ioctl(fd,DAHDI_SPANSTAT,&zi); if (res == -1) { perror("DAHDI_SPANSTAT"); exit(1); } printf("Alarm mask %x hex\n",zi.alarms); } continue; } #if 0 printf("(%d) Wrote %d bytes\n", packets++, res); #endif } }