int WfaConRcvVOSndAllE(struct station *sta,unsigned int *rmsg,int length) { int r; if(!expectedmsgrcd(rmsg,APTS_DEFAULT,tos_vo)) { printf("\r\nexpected message not rcv or BAD TOS\n"); } else { rmsg[0] = ++(sta->msgno); set_dscp(tos_vo); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", rmsg, 64); printf("Rcv VO sent VO\n"); rmsg[0] = ++(sta->msgno); set_dscp(tos_vi); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", rmsg, 64); printf("sent VI\n"); rmsg[0] = ++(sta->msgno); set_dscp(tos_be); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", rmsg, 64); printf("sent BE\n"); rmsg[0] = ++(sta->msgno); set_dscp(tos_bk); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if(r < 0) { printf("\nhere u go:dead\n"); } if (traceflag) mpx("CMD send(BK)\n", rmsg, 64); { printf("sent BK\n"); } txmsg[0] = ++(sta->msgno); set_dscp(tos_bk); create_apts_msg(APTS_STOP, txmsg,sta->myid); txmsg[1] = tos_bk; r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send STOP(RcvVOSndAllE)\n", txmsg, 64); sta->state++; } }
/* rcv VI echo back VI, sent brct */ int WfaConRcvVISndBcast(struct station *sta,unsigned int *rmsg,int length) { int r; if(!expectedmsgrcd(rmsg,APTS_DEFAULT,tos_vi)) { printf("\r\nexpected message not rcv or BAD TOS\n"); } else { rmsg[0] = ++(sta->msgno); set_dscp(tos_vi); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); rmsg[0] = ++(sta->msgno); set_dscp(tos_be); r = sendto(rd, rmsg, 190, sockflags, (struct sockaddr *)&dst, sizeof(dst)); if (traceflag) mpx("CMD send brdcst BE\n", rmsg, 64); printf("Rcv/sent VI, sent Broadcast\n"); sta->state++; } }
int WfaConSndVI(struct station *sta,unsigned int *rmsg,int length) { int r; set_dscp(tos_vi); txmsg[0] = ++(sta->msgno); create_apts_msg(APTS_DEFAULT, txmsg,sta->myid); txmsg[1] = tos_vi; r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); sta->state++; if (traceflag) mpx("CMD send(SndVI)\n", txmsg, 64); printf("sent VI\n"); }
int WfaConRcvVISndVOE(struct station *sta,unsigned int *rmsg,int length) { int r; if(!expectedmsgrcd(rmsg,APTS_DEFAULT,tos_vi)) { printf("\r\nexpected message not rcv or BAD TOS\n"); } else { rmsg[0] = ++(sta->msgno); set_dscp(tos_vo); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", rmsg, 64); printf("rcv VI sent VO\n"); txmsg[0] = ++(sta->msgno); create_apts_msg(APTS_STOP, txmsg,sta->myid); set_dscp(tos_be); r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); sta->state++; if (traceflag) mpx("CMD send STOP(RcvVISndVOE)\n", txmsg, 64); } }
int WfaConRcvVOSnd(struct station *sta,unsigned int *rmsg,int length) { int r; if(!expectedmsgrcd(rmsg,APTS_DEFAULT,tos_vo)) { printf("\r\nexpected message not rcv or BAD TOS\n"); } else { rmsg[0] = ++(sta->msgno); set_dscp(tos_vo); r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); sta->state++; if (traceflag) mpx("CMD send (RcvVOSnd)\n", rmsg, 64); printf("Rcv VO sent VO\n"); } }
void WfaConResetAll() { int r; reset=1; printf("\nEntering WfaConResetAll:: "); alarm(0); num_retry++; if(num_retry > MAXRETRY) IAmDead(); if(reset_recd) { reset_recd = 0; set_dscp(tos_be); create_apts_msg(APTS_RESET_RESP, txmsg,0); txmsg[1] = tos_be; r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", txmsg, 64); printf("\nsent RESET RESP\n"); } else { int resp_recd=0; create_apts_msg(APTS_RESET, txmsg,0); txmsg[1] = tos_be; r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", txmsg, 64); printf("\nsent RESET \n"); while(!resp_recd) { r = recvfrom(sd, rmsg, sizeof(rmsg), 0, (struct sockaddr *)&from, &fromlen); if (r<0) { perror("rcv error:"); exit(1); } if(rmsg[10] != APTS_RESET_RESP) continue; if (traceflag) mpx("CMD recd\n", rmsg, 64); alarm(0); resp_recd=1; }/* while */ } }
int WfaConRcvConfSndVI(struct station *sta,unsigned int *rmsg,int length) { int r; if(!expectedmsgrcd(rmsg,APTS_CONFIRM,tos_be)) { printf("\r\nConfirm not rcv or BAD TOS\n"); } else { set_dscp(tos_vi); txmsg[0] = ++(sta->msgno); create_apts_msg(APTS_DEFAULT, txmsg,sta->myid); txmsg[1] = tos_vi; r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); sta->state++; if (traceflag) mpx("CMD send (VI)\n", txmsg, 64); printf("Rcv Confirm sent VI\n"); } }
/* L.1 test case */ int WfaConRcvVOSndCyclic(struct station *sta,unsigned int *rmsg,int length) { int r,id, dscpLocal = 0; static int count=0; if(!expectedmsgrcdl1(rmsg,APTS_DEFAULT,tos_vo)) // call L.1 case check routine in wfa_util.c { if(!expectedmsgrcdl1(rmsg,APTS_STOP,tos_be)) //call L.1 case check routine in wfa_util.c printf("\r\nWfaConRcvVOSndCyclic::expected STOP message not rcv or BAD TOS BE\n"); else { count = 0; for(id=0; id<NSTA; id++) { if (stations[id].s_addr == 0) { break; } else { printf("\n sta count is %d\n",stations[id].msgno); count+=stations[id].msgno; } } txmsg[0] = count; printf("\n count is %d\n",count); set_dscp(tos_be); create_apts_msg(APTS_STOP, txmsg,sta->myid); txmsg[1] = tos_be; if(can_quit) { if(!sta->alreadyCleared) { strcpy((char *)&txmsg[11], "APTSL1 STOP"); r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", txmsg, 64); sleep(5); printf("\n >>> EXISTING >>> ret=%d\n",r); exit(0); } else r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", txmsg, 64); } else { r = sendto(sd, txmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); if (traceflag) mpx("CMD send\n", txmsg, 64); sta->alreadyCleared = 0; can_quit=1; } } } else { count++; printf("\r\n Rcv pkt #%d ",count); rmsg[0] = ++(sta->msgno); dscpLocal=set_dscp0(tos_vo); // no sleep setting r = sendto(sd, rmsg, 190, sockflags, (struct sockaddr *)&from, sizeof(from)); printf("sent dscp VO, return dscp=0x%x\n", dscpLocal); if ( count >= 3000) { //No state change for L.1::sta->state++; //count = 0; } } }