HP UX 11i v2 Networking Software manual Appendix a 171

Models: UX 11i v2 Networking Software

1 175
Download 175 pages 52.54 Kb
Page 171
Image 171

Sample Programs

Raw Mode

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;

llc_hdr->ssap = OUTSAP;

llc_hdr->ctrl = IEEECTRL_DEF;

sprintf(&dat_area[SEQ_OFFSET], ”%d”, i * INNER_LOOPS + j); rawdat_req->dl_primitive = DL_HP_RAWDATA_REQ; put_both(outfd, sizeof(dl_hp_rawdata_req_t), FRAME_LEN, 0); printf(”+”);

fflush(stdout); if(poll(&pinfo, 1, 0)) {

get_msg(outfd);

check_ctrl(DL_ERROR_ACK);

if(err_ack->dl_error_primitive != DL_HP_RAWDATA_REQ err_ack->dl_errno != DL_SYSERR err_ack->dl_unix_errno != ENOBUFS) {

check_ctrl(0); } else {

/* re-send same pkt */ printf(”\nENOBUFS\n”); j--;

}

}

}

for(j = 0; j < INNER_LOOPS; j++) { get_msg(infd); printf(”-”); fflush(stdout); check_ctrl(DL_HP_RAWDATA_IND); if(dat.len != FRAME_LEN) {

printf(”\nlength error: expected %d, got %d\n”, FRAME_LEN, dat.len);

}

inseq = strtol(&dat_area[SEQ_OFFSET], 0, 0); if(inseq != (i * INNER_LOOPS + j)) {

printf(”\nseq error: expected %d, got %d\n”, i * INNER_LOOPS + j, inseq);

}

}

}

printf(”\n”);

}

Appendix A

171

Page 171
Image 171
HP UX 11i v2 Networking Software manual Appendix a 171