HP rp2450 HP DLPI Programmer's Guide - Page 220
dl_bindinfd, INSAP, addr, OUTSAP
View all HP rp2450 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 220 highlights
Sample Programs Raw Mode Example bcopy((u_char *)bind_ack + bind_ack->dl_addr_offset, addr, bind_ack->dl_addr_length); } void xxx(); void main(argc, argv) int argc; char *argv[]; { int infd, outfd; struct pollfd pinfo; int i, j, inseq; u_char addr[25]; struct ieee8023_hdr *mac_hdr = (struct ieee8023_hdr *)dat_area; struct ieee8022_hdr *llc_hdr; dl_hp_rawdata_req_t *rawdat_req = (dl_hp_rawdata_req_t *)ctl_area; dl_hp_rawdata_ind_t *rawdat_ind = (dl_hp_rawdata_ind_t *)ctl_area; dl_error_ack_t *err_ack = (dl_error_ack_t *)ctl_area; /* MAC header size is 14 bytes */ llc_hdr = (struct ieee8022_hdr *)&((u_char *)dat_area)[14]; if(!(infd = dl_open(PPA))) { printf("error: open failed\n"); exit(1); } if(!(outfd = dl_open(PPA))) { printf("error: open failed\n"); exit(1); } dl_bind(infd, INSAP, addr); dl_bind(outfd, OUTSAP, addr); pinfo.fd = outfd; pinfo.events = POLLIN | POLLPRI; pinfo.revents = 0; for(i = 0; i < OUTER_LOOPS; i++) { for(j = 0; j < INNER_LOOPS; j++) { bcopy(addr, mac_hdr->destaddr, 6); /* card will stuff in source addr * The ieee header length does not include the * ethernet MAC header. */ mac_hdr->length = FRAME_LEN - ETHER_HLEN; llc_hdr->dsap = INSAP; 220 Appendix A