00001
00023
00029 #include "stdio.h"
00030 #include "sys/types.h"
00031 #include "unistd.h"
00032 #include "fcntl.h"
00033 #include <string.h>
00034
00035 #include "include/itm.h"
00036 #include "include/usi.h"
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00101 struct xian_float xian_float_add(struct xian_float a, struct xian_float b){
00102 struct xian_float value;
00103 value.numerator=0;
00104 value.denominator=0;
00105 if(a.denominator==0){
00106 return b;
00107 }else{
00108 if(b.denominator==0){
00109 return a;
00110 }else{
00111 value.denominator=a.denominator*b.denominator;
00112 value.numerator=(a.numerator*b.denominator)+(b.numerator*a.denominator);
00113 return value;
00114 }
00115 }
00116 }
00117
00118
00124 struct xian_float xian_float_mult(struct xian_float a, struct xian_float b){
00125 struct xian_float value;
00126 value.numerator=a.numerator*b.numerator;
00127 value.denominator=a.denominator*b.denominator;
00128 return value;
00129 }
00130
00131
00137 struct xian_float xian_float_div(struct xian_float a, struct xian_float b){
00138 struct xian_float value;
00139 struct xian_float inv;
00140 inv.numerator=b.denominator;
00141 inv.denominator=b.numerator;
00142 if(b.numerator!=0){
00143 value=xian_float_mult(a, inv);
00144 }
00145 value=xian_float_mult(a, inv);
00146 return value;
00147 }
00148
00149
00155 int xian_float_cmp(struct xian_float a, struct xian_float b){
00156 int c,d;
00157 c=a.numerator*b.denominator;
00158 d=b.numerator*a.denominator;
00159 if(c==d){
00160 return 0;
00161 }else{
00162 if(c<d){
00163 return -1;
00164 }else{
00165 return 1;
00166 }
00167 }
00168 }
00169
00170
00175 struct xian_float int2xian_float(unsigned int x){
00176 struct xian_float value;
00177 value.numerator=x;
00178 value.denominator=1;
00179 return value;
00180 }
00181
00182
00187 float xian_float2float(struct xian_float x){
00188 float f=0;
00189 if(x.denominator!=0){
00190 f=x.numerator/x.denominator;
00191 }
00192 return f;
00193 }
00194
00195
00203 struct xian_float
00204 get_xian_stat_xian_float(char * macadd,
00205 char * dev_name,
00206 unsigned int id_conf,
00207 unsigned int * code_err)
00208 {
00209 int file, nb_write, nb_read;
00210 struct qos_metric_stat_msg msg;
00211
00212 msg.struct_id = T_QOS_METRIC_STAT_MSG;
00213 msg.type_msg = T_QUERY_MSG;
00214 msg.id_error = NO_ERRORS;
00215 msg.id=id_conf;
00216
00217 if (macadd)
00218 strcpy ((char *) msg.macaddr, macadd);
00219 else
00220 msg.macaddr[0] = '\0';
00221 if (dev_name)
00222 strcpy((char *) msg.dev_name, dev_name);
00223 else
00224 msg.dev_name[0] = '\0';
00225
00226 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00227 {
00228 fprintf(stderr, "Can't open: ");
00229 perror(CROSS_LAYER_DEV_NAME_PATH);
00230 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00231 msg.type_msg = T_ERROR_MSG;
00232 }
00233
00234 nb_write = write(file, &msg, sizeof(msg));
00235 nb_read = read(file, &msg, sizeof(msg));
00236
00237 if (nb_read == 0)
00238 {
00239 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00240 msg.type_msg = T_ERROR_MSG;
00241 }
00242 close(file);
00243 (*code_err) = msg.id_error;
00244 return msg.metric.xian_float;
00245 }
00246
00247
00255 float
00256 get_xian_stat_float(char * macadd,
00257 char * dev_name,
00258 unsigned int id_conf,
00259 unsigned int * code_err)
00260 {
00261 float f;
00262 struct xian_float value;
00263 f=0;
00264 value=get_xian_stat_xian_float(macadd,dev_name,id_conf,code_err);
00265 if(value.denominator!=0){
00266 f=(float)value.numerator/(float)value.denominator;
00267 }
00268 return f;
00269 }
00270
00271
00278 void insert_metric(struct qos_metric_proto_msg *msg, unsigned int type, unsigned int id, unsigned long long value){
00279 int nb;
00280 nb=msg->nb;
00281 if(nb<NB_METRICS){
00282 msg->metric_name[nb]=type;
00283 msg->id[nb]=id;
00284 msg->metric[nb].int64=value;
00285 msg->nb=nb+1;
00286 }
00287 }
00288
00289
00296 void
00297 send_metric(char * macadd,
00298 char * dev_name,
00299 struct qos_metric_proto_msg msg,
00300 unsigned int * code_err)
00301 {
00302 int file, nb_write;
00303
00304 msg.struct_id = T_QOS_METRIC_PROTO_MSG;
00305 msg.type_msg = T_SEND_MSG;
00306 msg.id_error = NO_ERRORS;
00307 if (macadd)
00308 strcpy ((char *) msg.macaddr, macadd);
00309 else
00310 msg.macaddr[0] = '\0';
00311 if (dev_name)
00312 strcpy((char *) msg.dev_name, dev_name);
00313 else
00314 msg.dev_name[0] = '\0';
00315
00316 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00317 {
00318 fprintf(stderr, "Can't open: ");
00319 perror(CROSS_LAYER_DEV_NAME_PATH);
00320 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00321 msg.type_msg = T_ERROR_MSG;
00322 }
00323
00324 nb_write = write(file, &msg, sizeof(msg));
00325
00326 close(file);
00327 (*code_err) = msg.id_error;
00328 }
00329
00330
00338 unsigned int
00339 get_node_rx_data(char * macadd,
00340 char * dev_name,
00341 unsigned int * code_err)
00342 {
00343 int file, nb_write, nb_read;
00344 struct qos_metric_node_msg msg;
00345
00346 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00347 msg.type_msg = T_QUERY_MSG;
00348 msg.id_error = NO_ERRORS;
00349 msg.metric.int32 = 0;
00350
00351 if (macadd)
00352 strcpy ((char *) msg.macaddr, macadd);
00353 else
00354 msg.macaddr[0] = '\0';
00355 msg.metric_name = NODE_RX_DATA;
00356 if (dev_name)
00357 strcpy((char *) msg.dev_name, dev_name);
00358 else
00359 msg.dev_name[0] = '\0';
00360
00361 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00362 {
00363 fprintf(stderr, "Can't open: ");
00364 perror(CROSS_LAYER_DEV_NAME_PATH);
00365 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00366 msg.type_msg = T_ERROR_MSG;
00367 }
00368
00369 nb_write = write(file, &msg, sizeof(msg));
00370 nb_read = read(file, &msg, sizeof(msg));
00371
00372 if (nb_read == 0)
00373 {
00374 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00375 msg.type_msg = T_ERROR_MSG;
00376 }
00377 close(file);
00378
00379 (*code_err) = msg.id_error;
00380 return (unsigned int) msg.metric.int32;
00381 }
00382
00383
00384
00392 unsigned int
00393 get_node_rx_mgmt(char * macadd,
00394 char * dev_name,
00395 unsigned int * code_err)
00396 {
00397 int file, nb_write, nb_read;
00398 struct qos_metric_node_msg msg;
00399
00400 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00401 msg.type_msg = T_QUERY_MSG;
00402 msg.id_error = NO_ERRORS;
00403 msg.metric.int32 = 0;
00404
00405 if (macadd)
00406 strcpy ((char *) msg.macaddr, macadd);
00407 else
00408 msg.macaddr[0] = '\0';
00409 msg.metric_name = NODE_RX_MGMT;
00410 if (dev_name)
00411 strcpy((char *) msg.dev_name, dev_name);
00412 else
00413 msg.dev_name[0] = '\0';
00414
00415 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00416 {
00417 fprintf(stderr, "Can't open: ");
00418 perror(CROSS_LAYER_DEV_NAME_PATH);
00419 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00420 msg.type_msg = T_ERROR_MSG;
00421 }
00422 nb_write = write(file, &msg, sizeof(msg));
00423 nb_read = read(file, &msg, sizeof(msg));
00424 if (nb_read == 0)
00425 {
00426 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00427 msg.type_msg = T_ERROR_MSG;
00428 }
00429 close(file);
00430
00431 (*code_err) = msg.id_error;
00432 return (unsigned int) msg.metric.int32;
00433 }
00434
00435
00436
00444 unsigned int
00445 get_node_rx_ctrl(char * macadd,
00446 char * dev_name,
00447 unsigned int * code_err)
00448 {
00449 int file, nb_write, nb_read;
00450 struct qos_metric_node_msg msg;
00451
00452 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00453 msg.type_msg = T_QUERY_MSG;
00454 msg.id_error = NO_ERRORS;
00455 msg.metric.int32 = 0;
00456
00457 if (macadd)
00458 strcpy ((char *) msg.macaddr, macadd);
00459 else
00460 msg.macaddr[0] = '\0';
00461 msg.metric_name = NODE_RX_CTRL;
00462 if (dev_name)
00463 strcpy((char *) msg.dev_name, dev_name);
00464 else
00465 msg.dev_name[0] = '\0';
00466
00467 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00468 {
00469 fprintf(stderr, "Can't open: ");
00470 perror(CROSS_LAYER_DEV_NAME_PATH);
00471 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00472 msg.type_msg = T_ERROR_MSG;
00473 }
00474 nb_write = write(file, &msg, sizeof(msg));
00475 nb_read = read(file, &msg, sizeof(msg));
00476 if (nb_read == 0)
00477 {
00478 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00479 msg.type_msg = T_ERROR_MSG;
00480 }
00481 close(file);
00482
00483 (*code_err) = msg.id_error;
00484 return (unsigned int) msg.metric.int32;
00485 }
00486
00487
00488
00496 unsigned int
00497 get_node_rx_ucast(char * macadd,
00498 char * dev_name,
00499 unsigned int * code_err)
00500 {
00501 int file, nb_write, nb_read;
00502 struct qos_metric_node_msg msg;
00503
00504 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00505 msg.type_msg = T_QUERY_MSG;
00506 msg.id_error = NO_ERRORS;
00507 msg.metric.int32 = 0;
00508
00509 if (macadd)
00510 strcpy ((char *) msg.macaddr, macadd);
00511 else
00512 msg.macaddr[0] = '\0';
00513 msg.metric_name = NODE_RX_UCAST;
00514 if (dev_name)
00515 strcpy((char *) msg.dev_name, dev_name);
00516 else
00517 msg.dev_name[0] = '\0';
00518
00519 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00520 {
00521 fprintf(stderr, "Can't open: ");
00522 perror(CROSS_LAYER_DEV_NAME_PATH);
00523 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00524 msg.type_msg = T_ERROR_MSG;
00525 }
00526 nb_write = write(file, &msg, sizeof(msg));
00527 nb_read = read(file, &msg, sizeof(msg));
00528 if (nb_read == 0)
00529 {
00530 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00531 msg.type_msg = T_ERROR_MSG;
00532 }
00533 close(file);
00534
00535 (*code_err) = msg.id_error;
00536 return (unsigned int) msg.metric.int32;
00537 }
00538
00539
00540
00541
00542
00543
00544
00545
00546
00547
00548 unsigned int
00549 get_node_rx_mcast(char * macadd,
00550 char * dev_name,
00551 unsigned int * code_err)
00552 {
00553 int file, nb_write, nb_read;
00554 struct qos_metric_node_msg msg;
00555
00556 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00557 msg.type_msg = T_QUERY_MSG;
00558 msg.id_error = NO_ERRORS;
00559 msg.metric.int32 = 0;
00560
00561 if (macadd)
00562 strcpy ((char *) msg.macaddr, macadd);
00563 else
00564 msg.macaddr[0] = '\0';
00565 msg.metric_name = NODE_RX_MCAST;
00566 if (dev_name)
00567 strcpy((char *) msg.dev_name, dev_name);
00568 else
00569 msg.dev_name[0] = '\0';
00570
00571 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00572 {
00573 fprintf(stderr, "Can't open: ");
00574 perror(CROSS_LAYER_DEV_NAME_PATH);
00575 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00576 msg.type_msg = T_ERROR_MSG;
00577 }
00578 nb_write = write(file, &msg, sizeof(msg));
00579 nb_read = read(file, &msg, sizeof(msg));
00580 if (nb_read == 0)
00581 {
00582 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00583 msg.type_msg = T_ERROR_MSG;
00584 }
00585 close(file);
00586
00587 (*code_err) = msg.id_error;
00588 return (unsigned int) msg.metric.int32;
00589 }
00590
00591
00599 unsigned long long
00600 get_node_rx_bytes(char * macadd,
00601 char * dev_name,
00602 unsigned int * code_err)
00603 {
00604 int file, nb_write, nb_read;
00605 struct qos_metric_node_msg msg;
00606
00607 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00608 msg.type_msg = T_QUERY_MSG;
00609 msg.id_error = NO_ERRORS;
00610 msg.metric.int64 = 0;
00611
00612 if (macadd)
00613 strcpy ((char *) msg.macaddr, macadd);
00614 else
00615 msg.macaddr[0] = '\0';
00616 msg.metric_name = NODE_RX_BYTES;
00617 if (dev_name)
00618 strcpy((char *) msg.dev_name, dev_name);
00619 else
00620 msg.dev_name[0] = '\0';
00621
00622 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00623 {
00624 fprintf(stderr, "Can't open: ");
00625 perror(CROSS_LAYER_DEV_NAME_PATH);
00626 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00627 msg.type_msg = T_ERROR_MSG;
00628 }
00629 nb_write = write(file, &msg, sizeof(msg));
00630 nb_read = read(file, &msg, sizeof(msg));
00631 if (nb_read == 0)
00632 {
00633 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00634 msg.type_msg = T_ERROR_MSG;
00635 }
00636 close(file);
00637
00638 (*code_err) = msg.id_error;
00639 return (unsigned long long) msg.metric.int64;
00640 }
00641
00642
00643
00651 unsigned long long
00652 get_node_rx_beacons(char * macadd,
00653 char * dev_name,
00654 unsigned int * code_err)
00655 {
00656 int file, nb_write, nb_read;
00657 struct qos_metric_node_msg msg;
00658
00659 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00660 msg.type_msg = T_QUERY_MSG;
00661 msg.id_error = NO_ERRORS;
00662 msg.metric.int64 = 0;
00663
00664 if (macadd)
00665 strcpy ((char *) msg.macaddr, macadd);
00666 else
00667 msg.macaddr[0] = '\0';
00668 msg.metric_name = NODE_RX_BEACONS;
00669 if (dev_name)
00670 strcpy((char *) msg.dev_name, dev_name);
00671 else
00672 msg.dev_name[0] = '\0';
00673
00674 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00675 {
00676 fprintf(stderr, "Can't open: ");
00677 perror(CROSS_LAYER_DEV_NAME_PATH);
00678 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00679 msg.type_msg = T_ERROR_MSG;
00680 }
00681 nb_write = write(file, &msg, sizeof(msg));
00682 nb_read = read(file, &msg, sizeof(msg));
00683 if (nb_read == 0)
00684 {
00685 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00686 msg.type_msg = T_ERROR_MSG;
00687 }
00688 close(file);
00689
00690 (*code_err) = msg.id_error;
00691 return (unsigned long long) msg.metric.int64;
00692 }
00693
00694
00695
00703 unsigned int
00704 get_node_rx_proberesp(char * macadd,
00705 char * dev_name,
00706 unsigned int * code_err)
00707 {
00708 int file, nb_write, nb_read;
00709 struct qos_metric_node_msg msg;
00710
00711 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00712 msg.type_msg = T_QUERY_MSG;
00713 msg.id_error = NO_ERRORS;
00714 msg.metric.int32 = 0;
00715
00716 if (macadd)
00717 strcpy ((char *) msg.macaddr, macadd);
00718 else
00719 msg.macaddr[0] = '\0';
00720 msg.metric_name = NODE_RX_PROBERESP;
00721 if (dev_name)
00722 strcpy((char *) msg.dev_name, dev_name);
00723 else
00724 msg.dev_name[0] = '\0';
00725
00726 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00727 {
00728 fprintf(stderr, "Can't open: ");
00729 perror(CROSS_LAYER_DEV_NAME_PATH);
00730 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00731 msg.type_msg = T_ERROR_MSG;
00732 }
00733 nb_write = write(file, &msg, sizeof(msg));
00734 nb_read = read(file, &msg, sizeof(msg));
00735 if (nb_read == 0)
00736 {
00737 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00738 msg.type_msg = T_ERROR_MSG;
00739 }
00740 close(file);
00741
00742 (*code_err) = msg.id_error;
00743 return (unsigned int) msg.metric.int32;
00744 }
00745
00746
00747
00755 unsigned int
00756 get_node_rx_dup(char * macadd,
00757 char * dev_name,
00758 unsigned int * code_err)
00759 {
00760 int file, nb_write, nb_read;
00761 struct qos_metric_node_msg msg;
00762
00763 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00764 msg.type_msg = T_QUERY_MSG;
00765 msg.id_error = NO_ERRORS;
00766 msg.metric.int32 = 0;
00767
00768 if (macadd)
00769 strcpy ((char *) msg.macaddr, macadd);
00770 else
00771 msg.macaddr[0] = '\0';
00772 msg.metric_name = NODE_RX_DUP;
00773 if (dev_name)
00774 strcpy((char *) msg.dev_name, dev_name);
00775 else
00776 msg.dev_name[0] = '\0';
00777
00778 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00779 {
00780 fprintf(stderr, "Can't open: ");
00781 perror(CROSS_LAYER_DEV_NAME_PATH);
00782 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00783 msg.type_msg = T_ERROR_MSG;
00784 }
00785 nb_write = write(file, &msg, sizeof(msg));
00786 nb_read = read(file, &msg, sizeof(msg));
00787 if (nb_read == 0)
00788 {
00789 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00790 msg.type_msg = T_ERROR_MSG;
00791 }
00792 close(file);
00793
00794 (*code_err) = msg.id_error;
00795 return (unsigned int) msg.metric.int32;
00796 }
00797
00798
00799
00807 unsigned int
00808 get_node_rx_noprivacy(char * macadd,
00809 char * dev_name,
00810 unsigned int * code_err)
00811 {
00812 int file, nb_write, nb_read;
00813 struct qos_metric_node_msg msg;
00814
00815 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00816 msg.type_msg = T_QUERY_MSG;
00817 msg.id_error = NO_ERRORS;
00818 msg.metric.int32 = 0;
00819
00820 if (macadd)
00821 strcpy ((char *) msg.macaddr, macadd);
00822 else
00823 msg.macaddr[0] = '\0';
00824 msg.metric_name = NODE_RX_NOPRIVACY;
00825 if (dev_name)
00826 strcpy((char *) msg.dev_name, dev_name);
00827 else
00828 msg.dev_name[0] = '\0';
00829
00830 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00831 {
00832 fprintf(stderr, "Can't open: ");
00833 perror(CROSS_LAYER_DEV_NAME_PATH);
00834 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00835 msg.type_msg = T_ERROR_MSG;
00836 }
00837 nb_write = write(file, &msg, sizeof(msg));
00838 nb_read = read(file, &msg, sizeof(msg));
00839 if (nb_read == 0)
00840 {
00841 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00842 msg.type_msg = T_ERROR_MSG;
00843 }
00844 close(file);
00845
00846 (*code_err) = msg.id_error;
00847 return (unsigned int) msg.metric.int32;
00848 }
00849
00850
00858 unsigned int
00859 get_node_rx_wepfail(char * macadd,
00860 char * dev_name,
00861 unsigned int * code_err)
00862 {
00863 int file, nb_write, nb_read;
00864 struct qos_metric_node_msg msg;
00865
00866 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00867 msg.type_msg = T_QUERY_MSG;
00868 msg.id_error = NO_ERRORS;
00869 msg.metric.int32 = 0;
00870
00871 if (macadd)
00872 strcpy ((char *) msg.macaddr, macadd);
00873 else
00874 msg.macaddr[0] = '\0';
00875 msg.metric_name = NODE_RX_WEPFAIL;
00876 if (dev_name)
00877 strcpy((char *) msg.dev_name, dev_name);
00878 else
00879 msg.dev_name[0] = '\0';
00880
00881 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00882 {
00883 fprintf(stderr, "Can't open: ");
00884 perror(CROSS_LAYER_DEV_NAME_PATH);
00885 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00886 msg.type_msg = T_ERROR_MSG;
00887 }
00888 nb_write = write(file, &msg, sizeof(msg));
00889 nb_read = read(file, &msg, sizeof(msg));
00890 if (nb_read == 0)
00891 {
00892 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00893 msg.type_msg = T_ERROR_MSG;
00894 }
00895 close(file);
00896
00897 (*code_err) = msg.id_error;
00898 return (unsigned int) msg.metric.int32;
00899 }
00900
00901
00902
00910 unsigned int
00911 get_node_rx_demicfail(char * macadd,
00912 char * dev_name,
00913 unsigned int * code_err)
00914 {
00915 int file, nb_write, nb_read;
00916 struct qos_metric_node_msg msg;
00917
00918 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00919 msg.type_msg = T_QUERY_MSG;
00920 msg.id_error = NO_ERRORS;
00921 msg.metric.int32 = 0;
00922
00923 if (macadd)
00924 strcpy ((char *) msg.macaddr, macadd);
00925 else
00926 msg.macaddr[0] = '\0';
00927 msg.metric_name = NODE_RX_DEMICFAIL;
00928 if (dev_name)
00929 strcpy((char *) msg.dev_name, dev_name);
00930 else
00931 msg.dev_name[0] = '\0';
00932
00933 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00934 {
00935 fprintf(stderr, "Can't open: ");
00936 perror(CROSS_LAYER_DEV_NAME_PATH);
00937 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00938 msg.type_msg = T_ERROR_MSG;
00939 }
00940 nb_write = write(file, &msg, sizeof(msg));
00941 nb_read = read(file, &msg, sizeof(msg));
00942 if (nb_read == 0)
00943 {
00944 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00945 msg.type_msg = T_ERROR_MSG;
00946 }
00947 close(file);
00948
00949 (*code_err) = msg.id_error;
00950 return (unsigned int) msg.metric.int32;
00951 }
00952
00953
00961 unsigned int
00962 get_node_rx_decap(char * macadd,
00963 char * dev_name,
00964 unsigned int * code_err)
00965 {
00966 int file, nb_write, nb_read;
00967 struct qos_metric_node_msg msg;
00968
00969 msg.struct_id = T_QOS_METRIC_NODE_MSG;
00970 msg.type_msg = T_QUERY_MSG;
00971 msg.id_error = NO_ERRORS;
00972 msg.metric.int32 = 0;
00973
00974 if (macadd)
00975 strcpy ((char *) msg.macaddr, macadd);
00976 else
00977 msg.macaddr[0] = '\0';
00978 msg.metric_name = NODE_RX_DECAP;
00979 if (dev_name)
00980 strcpy((char *) msg.dev_name, dev_name);
00981 else
00982 msg.dev_name[0] = '\0';
00983
00984 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
00985 {
00986 fprintf(stderr, "Can't open: ");
00987 perror(CROSS_LAYER_DEV_NAME_PATH);
00988 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
00989 msg.type_msg = T_ERROR_MSG;
00990 }
00991 nb_write = write(file, &msg, sizeof(msg));
00992 nb_read = read(file, &msg, sizeof(msg));
00993 if (nb_read == 0)
00994 {
00995 msg.id_error = COULD_NOT_READ_UNIX_DEV;
00996 msg.type_msg = T_ERROR_MSG;
00997 }
00998 close(file);
00999
01000 (*code_err) = msg.id_error;
01001 return (unsigned int) msg.metric.int32;
01002 }
01003
01004
01005
01013 unsigned int
01014 get_node_rx_defrag(char * macadd,
01015 char * dev_name,
01016 unsigned int * code_err)
01017 {
01018 int file, nb_write, nb_read;
01019 struct qos_metric_node_msg msg;
01020
01021 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01022 msg.type_msg = T_QUERY_MSG;
01023 msg.id_error = NO_ERRORS;
01024 msg.metric.int32 = 0;
01025
01026 if (macadd)
01027 strcpy ((char *) msg.macaddr, macadd);
01028 else
01029 msg.macaddr[0] = '\0';
01030 msg.metric_name = NODE_RX_DEFRAG;
01031 if (dev_name)
01032 strcpy((char *) msg.dev_name, dev_name);
01033 else
01034 msg.dev_name[0] = '\0';
01035
01036 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01037 {
01038 fprintf(stderr, "Can't open: ");
01039 perror(CROSS_LAYER_DEV_NAME_PATH);
01040 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01041 msg.type_msg = T_ERROR_MSG;
01042 }
01043 nb_write = write(file, &msg, sizeof(msg));
01044 nb_read = read(file, &msg, sizeof(msg));
01045 if (nb_read == 0)
01046 {
01047 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01048 msg.type_msg = T_ERROR_MSG;
01049 }
01050 close(file);
01051
01052 (*code_err) = msg.id_error;
01053 return (unsigned int) msg.metric.int32;
01054 }
01055
01056
01057
01065 unsigned int
01066 get_node_rx_disassoc(char * macadd,
01067 char * dev_name,
01068 unsigned int * code_err)
01069 {
01070 int file, nb_write, nb_read;
01071 struct qos_metric_node_msg msg;
01072
01073 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01074 msg.type_msg = T_QUERY_MSG;
01075 msg.id_error = NO_ERRORS;
01076 msg.metric.int32 = 0;
01077
01078 if (macadd)
01079 strcpy ((char *) msg.macaddr, macadd);
01080 else
01081 msg.macaddr[0] = '\0';
01082 msg.metric_name = NODE_RX_DISASSOC;
01083 if (dev_name)
01084 strcpy((char *) msg.dev_name, dev_name);
01085 else
01086 msg.dev_name[0] = '\0';
01087
01088 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01089 {
01090 fprintf(stderr, "Can't open: ");
01091 perror(CROSS_LAYER_DEV_NAME_PATH);
01092 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01093 msg.type_msg = T_ERROR_MSG;
01094 }
01095 nb_write = write(file, &msg, sizeof(msg));
01096 nb_read = read(file, &msg, sizeof(msg));
01097 if (nb_read == 0)
01098 {
01099 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01100 msg.type_msg = T_ERROR_MSG;
01101 }
01102 close(file);
01103
01104 (*code_err) = msg.id_error;
01105 return (unsigned int) msg.metric.int32;
01106 }
01107
01108
01109
01117 unsigned int
01118 get_node_rx_deauth(char * macadd,
01119 char * dev_name,
01120 unsigned int * code_err)
01121 {
01122 int file, nb_write, nb_read;
01123 struct qos_metric_node_msg msg;
01124
01125 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01126 msg.type_msg = T_QUERY_MSG;
01127 msg.id_error = NO_ERRORS;
01128 msg.metric.int32 = 0;
01129
01130 if (macadd)
01131 strcpy ((char *) msg.macaddr, macadd);
01132 else
01133 msg.macaddr[0] = '\0';
01134 msg.metric_name = NODE_RX_DEAUTH;
01135 if (dev_name)
01136 strcpy((char *) msg.dev_name, dev_name);
01137 else
01138 msg.dev_name[0] = '\0';
01139
01140 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01141 {
01142 fprintf(stderr, "Can't open: ");
01143 perror(CROSS_LAYER_DEV_NAME_PATH);
01144 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01145 msg.type_msg = T_ERROR_MSG;
01146 }
01147 nb_write = write(file, &msg, sizeof(msg));
01148 nb_read = read(file, &msg, sizeof(msg));
01149 if (nb_read == 0)
01150 {
01151 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01152 msg.type_msg = T_ERROR_MSG;
01153 }
01154 close(file);
01155
01156 (*code_err) = msg.id_error;
01157 return (unsigned int) msg.metric.int32;
01158 }
01159
01160
01161
01169 unsigned int
01170 get_node_rx_decryptcrc(char * macadd,
01171 char * dev_name,
01172 unsigned int * code_err)
01173 {
01174 int file, nb_write, nb_read;
01175 struct qos_metric_node_msg msg;
01176
01177 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01178 msg.type_msg = T_QUERY_MSG;
01179 msg.id_error = NO_ERRORS;
01180 msg.metric.int32 = 0;
01181
01182 if (macadd)
01183 strcpy ((char *) msg.macaddr, macadd);
01184 else
01185 msg.macaddr[0] = '\0';
01186 msg.metric_name = NODE_RX_DECRYPTCRC;
01187 if (dev_name)
01188 strcpy((char *) msg.dev_name, dev_name);
01189 else
01190 msg.dev_name[0] = '\0';
01191
01192 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01193 {
01194 fprintf(stderr, "Can't open: ");
01195 perror(CROSS_LAYER_DEV_NAME_PATH);
01196 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01197 msg.type_msg = T_ERROR_MSG;
01198 }
01199 nb_write = write(file, &msg, sizeof(msg));
01200 nb_read = read(file, &msg, sizeof(msg));
01201 if (nb_read == 0)
01202 {
01203 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01204 msg.type_msg = T_ERROR_MSG;
01205 }
01206 close(file);
01207
01208 (*code_err) = msg.id_error;
01209 return (unsigned int) msg.metric.int32;
01210 }
01211
01212
01220 unsigned int
01221 get_node_rx_unauth(char * macadd,
01222 char * dev_name,
01223 unsigned int * code_err)
01224 {
01225 int file, nb_write, nb_read;
01226 struct qos_metric_node_msg msg;
01227
01228 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01229 msg.type_msg = T_QUERY_MSG;
01230 msg.id_error = NO_ERRORS;
01231 msg.metric.int32 = 0;
01232
01233 if (macadd)
01234 strcpy ((char *) msg.macaddr, macadd);
01235 else
01236 msg.macaddr[0] = '\0';
01237 msg.metric_name = NODE_RX_UNAUTH;
01238 if (dev_name)
01239 strcpy((char *) msg.dev_name, dev_name);
01240 else
01241 msg.dev_name[0] = '\0';
01242
01243 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01244 {
01245 fprintf(stderr, "Can't open: ");
01246 perror(CROSS_LAYER_DEV_NAME_PATH);
01247 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01248 msg.type_msg = T_ERROR_MSG;
01249 }
01250 nb_write = write(file, &msg, sizeof(msg));
01251 nb_read = read(file, &msg, sizeof(msg));
01252 if (nb_read == 0)
01253 {
01254 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01255 msg.type_msg = T_ERROR_MSG;
01256 }
01257 close(file);
01258
01259 (*code_err) = msg.id_error;
01260 return (unsigned int) msg.metric.int32;
01261 }
01262
01263
01264
01272 unsigned int
01273 get_node_rx_unencrypted(char * macadd,
01274 char * dev_name,
01275 unsigned int * code_err)
01276 {
01277 int file, nb_write, nb_read;
01278 struct qos_metric_node_msg msg;
01279
01280 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01281 msg.type_msg = T_QUERY_MSG;
01282 msg.id_error = NO_ERRORS;
01283 msg.metric.int32 = 0;
01284
01285 if (macadd)
01286 strcpy ((char *) msg.macaddr, macadd);
01287 else
01288 msg.macaddr[0] = '\0';
01289 msg.metric_name = NODE_RX_UNENCRYPTED;
01290 if (dev_name)
01291 strcpy((char *) msg.dev_name, dev_name);
01292 else
01293 msg.dev_name[0] = '\0';
01294
01295 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01296 {
01297 fprintf(stderr, "Can't open: ");
01298 perror(CROSS_LAYER_DEV_NAME_PATH);
01299 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01300 msg.type_msg = T_ERROR_MSG;
01301 }
01302 nb_write = write(file, &msg, sizeof(msg));
01303 nb_read = read(file, &msg, sizeof(msg));
01304 if (nb_read == 0)
01305 {
01306 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01307 msg.type_msg = T_ERROR_MSG;
01308 }
01309 close(file);
01310
01311 (*code_err) = msg.id_error;
01312 return (unsigned int) msg.metric.int32;
01313 }
01314
01315
01323 unsigned int
01324 get_node_tx_data(char * macadd,
01325 char * dev_name,
01326 unsigned int * code_err)
01327 {
01328 int file, nb_write, nb_read;
01329 struct qos_metric_node_msg msg;
01330
01331 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01332 msg.type_msg = T_QUERY_MSG;
01333 msg.id_error = NO_ERRORS;
01334 msg.metric.int32 = 0;
01335
01336 if (macadd)
01337 strcpy ((char *) msg.macaddr, macadd);
01338 else
01339 msg.macaddr[0] = '\0';
01340 msg.metric_name = NODE_TX_DATA;
01341 if (dev_name)
01342 strcpy((char *) msg.dev_name, dev_name);
01343 else
01344 msg.dev_name[0] = '\0';
01345
01346 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01347 {
01348 fprintf(stderr, "Can't open: ");
01349 perror(CROSS_LAYER_DEV_NAME_PATH);
01350 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01351 msg.type_msg = T_ERROR_MSG;
01352 }
01353 nb_write = write(file, &msg, sizeof(msg));
01354 nb_read = read(file, &msg, sizeof(msg));
01355 if (nb_read == 0)
01356 {
01357 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01358 msg.type_msg = T_ERROR_MSG;
01359 }
01360 close(file);
01361
01362 (*code_err) = msg.id_error;
01363 return (unsigned int) msg.metric.int32;
01364 }
01365
01366
01367
01375 unsigned int
01376 get_node_tx_mgmt(char * macadd,
01377 char * dev_name,
01378 unsigned int * code_err)
01379 {
01380 int file, nb_write, nb_read;
01381 struct qos_metric_node_msg msg;
01382
01383 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01384 msg.type_msg = T_QUERY_MSG;
01385 msg.id_error = NO_ERRORS;
01386 msg.metric.int32 = 0;
01387
01388 if (macadd)
01389 strcpy ((char *) msg.macaddr, macadd);
01390 else
01391 msg.macaddr[0] = '\0';
01392 msg.metric_name = NODE_TX_MGMT;
01393 if (dev_name)
01394 strcpy((char *) msg.dev_name, dev_name);
01395 else
01396 msg.dev_name[0] = '\0';
01397
01398 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01399 {
01400 fprintf(stderr, "Can't open: ");
01401 perror(CROSS_LAYER_DEV_NAME_PATH);
01402 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01403 msg.type_msg = T_ERROR_MSG;
01404 }
01405 nb_write = write(file, &msg, sizeof(msg));
01406 nb_read = read(file, &msg, sizeof(msg));
01407 if (nb_read == 0)
01408 {
01409 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01410 msg.type_msg = T_ERROR_MSG;
01411 }
01412 close(file);
01413
01414 (*code_err) = msg.id_error;
01415 return (unsigned int) msg.metric.int32;
01416 }
01417
01418
01426 unsigned int
01427 get_node_tx_ucast(char * macadd,
01428 char * dev_name,
01429 unsigned int * code_err)
01430 {
01431 int file, nb_write, nb_read;
01432 struct qos_metric_node_msg msg;
01433
01434 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01435 msg.type_msg = T_QUERY_MSG;
01436 msg.id_error = NO_ERRORS;
01437 msg.metric.int32 = 0;
01438
01439 if (macadd)
01440 strcpy ((char *) msg.macaddr, macadd);
01441 else
01442 msg.macaddr[0] = '\0';
01443 msg.metric_name = NODE_TX_UCAST;
01444 if (dev_name)
01445 strcpy((char *) msg.dev_name, dev_name);
01446 else
01447 msg.dev_name[0] = '\0';
01448
01449 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01450 {
01451 fprintf(stderr, "Can't open: ");
01452 perror(CROSS_LAYER_DEV_NAME_PATH);
01453 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01454 msg.type_msg = T_ERROR_MSG;
01455 }
01456 nb_write = write(file, &msg, sizeof(msg));
01457 nb_read = read(file, &msg, sizeof(msg));
01458 if (nb_read == 0)
01459 {
01460 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01461 msg.type_msg = T_ERROR_MSG;
01462 }
01463 close(file);
01464
01465 (*code_err) = msg.id_error;
01466 return (unsigned int) msg.metric.int32;
01467 }
01468
01469
01477 unsigned int
01478 get_node_tx_mcast(char * macadd,
01479 char * dev_name,
01480 unsigned int * code_err)
01481 {
01482 int file, nb_write, nb_read;
01483 struct qos_metric_node_msg msg;
01484
01485 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01486 msg.type_msg = T_QUERY_MSG;
01487 msg.id_error = NO_ERRORS;
01488 msg.metric.int32 = 0;
01489
01490 if (macadd)
01491 strcpy ((char *) msg.macaddr, macadd);
01492 else
01493 msg.macaddr[0] = '\0';
01494 msg.metric_name = NODE_TX_MCAST;
01495 if (dev_name)
01496 strcpy((char *) msg.dev_name, dev_name);
01497 else
01498 msg.dev_name[0] = '\0';
01499
01500 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01501 {
01502 fprintf(stderr, "Can't open: ");
01503 perror(CROSS_LAYER_DEV_NAME_PATH);
01504 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01505 msg.type_msg = T_ERROR_MSG;
01506 }
01507 nb_write = write(file, &msg, sizeof(msg));
01508 nb_read = read(file, &msg, sizeof(msg));
01509 if (nb_read == 0)
01510 {
01511 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01512 msg.type_msg = T_ERROR_MSG;
01513 }
01514 close(file);
01515
01516 (*code_err) = msg.id_error;
01517 return (unsigned int) msg.metric.int32;
01518 }
01519
01520
01521
01529 unsigned long long
01530 get_node_tx_bytes(char * macadd,
01531 char * dev_name,
01532 unsigned int * code_err)
01533 {
01534 int file, nb_write, nb_read;
01535 struct qos_metric_node_msg msg;
01536
01537 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01538 msg.type_msg = T_QUERY_MSG;
01539 msg.id_error = NO_ERRORS;
01540 msg.metric.int64 = 0;
01541
01542 if (macadd)
01543 strcpy ((char *) msg.macaddr, macadd);
01544 else
01545 msg.macaddr[0] = '\0';
01546 msg.metric_name = NODE_TX_BYTES;
01547 if (dev_name)
01548 strcpy((char *) msg.dev_name, dev_name);
01549 else
01550 msg.dev_name[0] = '\0';
01551
01552 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01553 {
01554 fprintf(stderr, "Can't open: ");
01555 perror(CROSS_LAYER_DEV_NAME_PATH);
01556 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01557 msg.type_msg = T_ERROR_MSG;
01558 }
01559 nb_write = write(file, &msg, sizeof(msg));
01560 nb_read = read(file, &msg, sizeof(msg));
01561 if (nb_read == 0)
01562 {
01563 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01564 msg.type_msg = T_ERROR_MSG;
01565 }
01566 close(file);
01567
01568 (*code_err) = msg.id_error;
01569 return (unsigned long long) msg.metric.int64;
01570 }
01571
01572
01573
01581 unsigned int
01582 get_node_tx_probereq(char * macadd,
01583 char * dev_name,
01584 unsigned int * code_err)
01585 {
01586 int file, nb_write, nb_read;
01587 struct qos_metric_node_msg msg;
01588
01589 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01590 msg.type_msg = T_QUERY_MSG;
01591 msg.id_error = NO_ERRORS;
01592 msg.metric.int32 = 0;
01593
01594 if (macadd)
01595 strcpy ((char *) msg.macaddr, macadd);
01596 else
01597 msg.macaddr[0] = '\0';
01598 msg.metric_name = NODE_TX_PROBEREQ;
01599 if (dev_name)
01600 strcpy((char *) msg.dev_name, dev_name);
01601 else
01602 msg.dev_name[0] = '\0';
01603 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01604 {
01605 fprintf(stderr, "Can't open: ");
01606 perror(CROSS_LAYER_DEV_NAME_PATH);
01607 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01608 msg.type_msg = T_ERROR_MSG;
01609 }
01610 nb_write = write(file, &msg, sizeof(msg));
01611 nb_read = read(file, &msg, sizeof(msg));
01612 if (nb_read == 0)
01613 {
01614 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01615 msg.type_msg = T_ERROR_MSG;
01616 }
01617 close(file);
01618
01619 (*code_err) = msg.id_error;
01620 return (unsigned int) msg.metric.int32;
01621 }
01622
01623
01624
01632 unsigned int
01633 get_node_tx_novlantag(char * macadd,
01634 char * dev_name,
01635 unsigned int * code_err)
01636 {
01637 int file, nb_write, nb_read;
01638 struct qos_metric_node_msg msg;
01639
01640 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01641 msg.type_msg = T_QUERY_MSG;
01642 msg.id_error = NO_ERRORS;
01643 msg.metric.int32 = 0;
01644
01645 if (macadd)
01646 strcpy ((char *) msg.macaddr, macadd);
01647 else
01648 msg.macaddr[0] = '\0';
01649 msg.metric_name = NODE_TX_NOVLANTAG;
01650 if (dev_name)
01651 strcpy((char *) msg.dev_name, dev_name);
01652 else
01653 msg.dev_name[0] = '\0';
01654
01655 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01656 {
01657 fprintf(stderr, "Can't open: ");
01658 perror(CROSS_LAYER_DEV_NAME_PATH);
01659 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01660 msg.type_msg = T_ERROR_MSG;
01661 }
01662 nb_write = write(file, &msg, sizeof(msg));
01663 nb_read = read(file, &msg, sizeof(msg));
01664 if (nb_read == 0)
01665 {
01666 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01667 msg.type_msg = T_ERROR_MSG;
01668 }
01669 close(file);
01670
01671 (*code_err) = msg.id_error;
01672 return (unsigned int) msg.metric.int32;
01673 }
01674
01675
01683 unsigned int
01684 get_node_tx_vlanmismatch(char * macadd,
01685 char * dev_name,
01686 unsigned int * code_err)
01687
01688 {
01689 int file, nb_write, nb_read;
01690 struct qos_metric_node_msg msg;
01691
01692 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01693 msg.type_msg = T_QUERY_MSG;
01694 msg.id_error = NO_ERRORS;
01695 msg.metric.int32 = 0;
01696
01697 if (macadd)
01698 strcpy ((char *) msg.macaddr, macadd);
01699 else
01700 msg.macaddr[0] = '\0';
01701 msg.metric_name = NODE_TX_VLANMISMATCH;
01702 if (dev_name)
01703 strcpy((char *) msg.dev_name, dev_name);
01704 else
01705 msg.dev_name[0] = '\0';
01706
01707 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01708 {
01709 fprintf(stderr, "Can't open: ");
01710 perror(CROSS_LAYER_DEV_NAME_PATH);
01711 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01712 msg.type_msg = T_ERROR_MSG;
01713 }
01714 nb_write = write(file, &msg, sizeof(msg));
01715 nb_read = read(file, &msg, sizeof(msg));
01716 if (nb_read == 0)
01717 {
01718 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01719 msg.type_msg = T_ERROR_MSG;
01720 }
01721 close(file);
01722
01723 (*code_err) = msg.id_error;
01724 return (unsigned int) msg.metric.int32;
01725 }
01726
01727
01728
01736 unsigned int
01737 get_node_ps_discard(char * macadd,
01738 char * dev_name,
01739 unsigned int * code_err)
01740 {
01741 int file, nb_write, nb_read;
01742 struct qos_metric_node_msg msg;
01743
01744 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01745 msg.type_msg = T_QUERY_MSG;
01746 msg.id_error = NO_ERRORS;
01747 msg.metric.int32 = 0;
01748
01749 if (macadd)
01750 strcpy ((char *) msg.macaddr, macadd);
01751 else
01752 msg.macaddr[0] = '\0';
01753 msg.metric_name = NODE_PS_DISCARD;
01754 if (dev_name)
01755 strcpy((char *) msg.dev_name, dev_name);
01756 else
01757 msg.dev_name[0] = '\0';
01758
01759 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01760 {
01761 fprintf(stderr, "Can't open: ");
01762 perror(CROSS_LAYER_DEV_NAME_PATH);
01763 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01764 msg.type_msg = T_ERROR_MSG;
01765 }
01766 nb_write = write(file, &msg, sizeof(msg));
01767 nb_read = read(file, &msg, sizeof(msg));
01768 if (nb_read == 0)
01769 {
01770 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01771 msg.type_msg = T_ERROR_MSG;
01772 }
01773 close(file);
01774
01775 (*code_err) = msg.id_error;
01776 return (unsigned int) msg.metric.int32;
01777 }
01778
01779
01787 unsigned int
01788 get_node_tx_assoc(char * macadd,
01789 char * dev_name,
01790 unsigned int * code_err)
01791 {
01792 int file, nb_write, nb_read;
01793 struct qos_metric_node_msg msg;
01794
01795 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01796 msg.type_msg = T_QUERY_MSG;
01797 msg.id_error = NO_ERRORS;
01798 msg.metric.int32 = 0;
01799
01800 if (macadd)
01801 strcpy ((char *) msg.macaddr, macadd);
01802 else
01803 msg.macaddr[0] = '\0';
01804 msg.metric_name = NODE_TX_ASSOC;
01805 if (dev_name)
01806 strcpy((char *) msg.dev_name, dev_name);
01807 else
01808 msg.dev_name[0] = '\0';
01809
01810 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01811 {
01812 fprintf(stderr, "Can't open: ");
01813 perror(CROSS_LAYER_DEV_NAME_PATH);
01814 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01815 msg.type_msg = T_ERROR_MSG;
01816 }
01817 nb_write = write(file, &msg, sizeof(msg));
01818 nb_read = read(file, &msg, sizeof(msg));
01819 if (nb_read == 0)
01820 {
01821 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01822 msg.type_msg = T_ERROR_MSG;
01823 }
01824 close(file);
01825
01826 (*code_err) = msg.id_error;
01827 return (unsigned int) msg.metric.int32;
01828 }
01829
01830
01831
01839 unsigned int
01840 get_node_tx_assoc_fail(char * macadd,
01841 char * dev_name,
01842 unsigned int * code_err)
01843 {
01844 int file, nb_write, nb_read;
01845 struct qos_metric_node_msg msg;
01846
01847 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01848 msg.type_msg = T_QUERY_MSG;
01849 msg.id_error = NO_ERRORS;
01850 msg.metric.int32 = 0;
01851
01852 if (macadd)
01853 strcpy ((char *) msg.macaddr, macadd);
01854 else
01855 msg.macaddr[0] = '\0';
01856 msg.metric_name = NODE_TX_ASSOC_FAIL;
01857 if (dev_name)
01858 strcpy((char *) msg.dev_name, dev_name);
01859 else
01860 msg.dev_name[0] = '\0';
01861
01862 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01863 {
01864 fprintf(stderr, "Can't open: ");
01865 perror(CROSS_LAYER_DEV_NAME_PATH);
01866 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01867 msg.type_msg = T_ERROR_MSG;
01868 }
01869 nb_write = write(file, &msg, sizeof(msg));
01870 nb_read = read(file, &msg, sizeof(msg));
01871 if (nb_read == 0)
01872 {
01873 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01874 msg.type_msg = T_ERROR_MSG;
01875 }
01876 close(file);
01877
01878 (*code_err) = msg.id_error;
01879 return (unsigned int) msg.metric.int32;
01880 }
01881
01882
01890 unsigned int
01891 get_node_tx_auth(char * macadd,
01892 char * dev_name,
01893 unsigned int * code_err)
01894 {
01895 int file, nb_write, nb_read;
01896 struct qos_metric_node_msg msg;
01897
01898 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01899 msg.type_msg = T_QUERY_MSG;
01900 msg.id_error = NO_ERRORS;
01901 msg.metric.int32 = 0;
01902
01903 if (macadd)
01904 strcpy ((char *) msg.macaddr, macadd);
01905 else
01906 msg.macaddr[0] = '\0';
01907 msg.metric_name = NODE_TX_AUTH;
01908 if (dev_name)
01909 strcpy((char *) msg.dev_name, dev_name);
01910 else
01911 msg.dev_name[0] = '\0';
01912
01913 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01914 {
01915 fprintf(stderr, "Can't open: ");
01916 perror(CROSS_LAYER_DEV_NAME_PATH);
01917 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01918 msg.type_msg = T_ERROR_MSG;
01919 }
01920 nb_write = write(file, &msg, sizeof(msg));
01921 nb_read = read(file, &msg, sizeof(msg));
01922 if (nb_read == 0)
01923 {
01924 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01925 msg.type_msg = T_ERROR_MSG;
01926 }
01927 close(file);
01928
01929 (*code_err) = msg.id_error;
01930 return (unsigned int) msg.metric.int32;
01931 }
01932
01933
01934
01942 unsigned int
01943 get_node_tx_auth_fail(char * macadd,
01944 char * dev_name,
01945 unsigned int * code_err)
01946 {
01947 int file, nb_write, nb_read;
01948 struct qos_metric_node_msg msg;
01949
01950 msg.struct_id = T_QOS_METRIC_NODE_MSG;
01951 msg.type_msg = T_QUERY_MSG;
01952 msg.id_error = NO_ERRORS;
01953 msg.metric.int32 = 0;
01954
01955 if (macadd)
01956 strcpy ((char *) msg.macaddr, macadd);
01957 else
01958 msg.macaddr[0] = '\0';
01959 msg.metric_name = NODE_TX_AUTH_FAIL;
01960 if (dev_name)
01961 strcpy((char *) msg.dev_name, dev_name);
01962 else
01963 msg.dev_name[0] = '\0';
01964
01965 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
01966 {
01967 fprintf(stderr, "Can't open: ");
01968 perror(CROSS_LAYER_DEV_NAME_PATH);
01969 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
01970 msg.type_msg = T_ERROR_MSG;
01971 }
01972 nb_write = write(file, &msg, sizeof(msg));
01973 nb_read = read(file, &msg, sizeof(msg));
01974 if (nb_read == 0)
01975 {
01976 msg.id_error = COULD_NOT_READ_UNIX_DEV;
01977 msg.type_msg = T_ERROR_MSG;
01978 }
01979 close(file);
01980
01981 (*code_err) = msg.id_error;
01982 return (unsigned int) msg.metric.int32;
01983 }
01984
01985
01986
01994 unsigned int
01995 get_node_tx_deauth(char * macadd,
01996 char * dev_name,
01997 unsigned int * code_err)
01998 {
01999 int file, nb_write, nb_read;
02000 struct qos_metric_node_msg msg;
02001
02002 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02003 msg.type_msg = T_QUERY_MSG;
02004 msg.id_error = NO_ERRORS;
02005 msg.metric.int32 = 0;
02006
02007 if (macadd)
02008 strcpy ((char *) msg.macaddr, macadd);
02009 else
02010 msg.macaddr[0] = '\0';
02011 msg.metric_name = NODE_TX_DEAUTH;
02012 if (dev_name)
02013 strcpy((char *) msg.dev_name, dev_name);
02014 else
02015 msg.dev_name[0] = '\0';
02016
02017 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02018 {
02019 fprintf(stderr, "Can't open: ");
02020 perror(CROSS_LAYER_DEV_NAME_PATH);
02021 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02022 msg.type_msg = T_ERROR_MSG;
02023 }
02024 nb_write = write(file, &msg, sizeof(msg));
02025 nb_read = read(file, &msg, sizeof(msg));
02026 if (nb_read == 0)
02027 {
02028 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02029 msg.type_msg = T_ERROR_MSG;
02030 }
02031 close(file);
02032
02033 (*code_err) = msg.id_error;
02034 return (unsigned int) msg.metric.int32;
02035 }
02036
02037
02038
02046 unsigned int
02047 get_node_tx_deauth_code(char * macadd,
02048 char * dev_name,
02049 unsigned int * code_err)
02050 {
02051 int file, nb_write, nb_read;
02052 struct qos_metric_node_msg msg;
02053
02054 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02055 msg.type_msg = T_QUERY_MSG;
02056 msg.id_error = NO_ERRORS;
02057 msg.metric.int32 = 0;
02058
02059 if (macadd)
02060 strcpy ((char *) msg.macaddr, macadd);
02061 else
02062 msg.macaddr[0] = '\0';
02063 msg.metric_name = NODE_TX_DEAUTH_CODE;
02064 if (dev_name)
02065 strcpy((char *) msg.dev_name, dev_name);
02066 else
02067 msg.dev_name[0] = '\0';
02068
02069 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02070 {
02071 fprintf(stderr, "Can't open: ");
02072 perror(CROSS_LAYER_DEV_NAME_PATH);
02073 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02074 msg.type_msg = T_ERROR_MSG;
02075 }
02076 nb_write = write(file, &msg, sizeof(msg));
02077 nb_read = read(file, &msg, sizeof(msg));
02078 if (nb_read == 0)
02079 {
02080 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02081 msg.type_msg = T_ERROR_MSG;
02082 }
02083 close(file);
02084
02085 (*code_err) = msg.id_error;
02086 return (unsigned int) msg.metric.int32;
02087 }
02088
02089
02090
02098 unsigned int
02099 get_node_tx_disassoc(char * macadd,
02100 char * dev_name,
02101 unsigned int * code_err)
02102 {
02103 int file, nb_write, nb_read;
02104 struct qos_metric_node_msg msg;
02105
02106 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02107 msg.type_msg = T_QUERY_MSG;
02108 msg.id_error = NO_ERRORS;
02109 msg.metric.int32 = 0;
02110
02111 if (macadd)
02112 strcpy ((char *) msg.macaddr, macadd);
02113 else
02114 msg.macaddr[0] = '\0';
02115 msg.metric_name = NODE_TX_DISASSOC;
02116 if (dev_name)
02117 strcpy((char *) msg.dev_name, dev_name);
02118 else
02119 msg.dev_name[0] = '\0';
02120
02121 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02122 {
02123 fprintf(stderr, "Can't open: ");
02124 perror(CROSS_LAYER_DEV_NAME_PATH);
02125 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02126 msg.type_msg = T_ERROR_MSG;
02127 }
02128 nb_write = write(file, &msg, sizeof(msg));
02129 nb_read = read(file, &msg, sizeof(msg));
02130 if (nb_read == 0)
02131 {
02132 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02133 msg.type_msg = T_ERROR_MSG;
02134 }
02135 close(file);
02136
02137 (*code_err) = msg.id_error;
02138 return (unsigned int) msg.metric.int32;
02139 }
02140
02141
02142
02150 unsigned int
02151 get_node_tx_disassoc_code(char * macadd,
02152 char * dev_name,
02153 unsigned int * code_err)
02154 {
02155 int file, nb_write, nb_read;
02156 struct qos_metric_node_msg msg;
02157
02158 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02159 msg.type_msg = T_QUERY_MSG;
02160 msg.id_error = NO_ERRORS;
02161 msg.metric.int32 = 0;
02162
02163 if (macadd)
02164 strcpy ((char *) msg.macaddr, macadd);
02165 else
02166 msg.macaddr[0] = '\0';
02167 msg.metric_name = NODE_TX_DISASSOC_CODE;
02168 if (dev_name)
02169 strcpy((char *) msg.dev_name, dev_name);
02170 else
02171 msg.dev_name[0] = '\0';
02172
02173 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02174 {
02175 fprintf(stderr, "Can't open: ");
02176 perror(CROSS_LAYER_DEV_NAME_PATH);
02177 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02178 msg.type_msg = T_ERROR_MSG;
02179 }
02180 nb_write = write(file, &msg, sizeof(msg));
02181 nb_read = read(file, &msg, sizeof(msg));
02182 if (nb_read == 0)
02183 {
02184 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02185 msg.type_msg = T_ERROR_MSG;
02186 }
02187 close(file);
02188
02189 (*code_err) = msg.id_error;
02190 return (unsigned int) msg.metric.int32;
02191 }
02192
02193
02194
02202 unsigned char
02203 get_node_txpower(char * macadd,
02204 char * dev_name,
02205 unsigned int * code_err)
02206 {
02207 int file, nb_write, nb_read;
02208 struct qos_metric_node_msg msg;
02209
02210 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02211 msg.type_msg = T_QUERY_MSG;
02212 msg.id_error = NO_ERRORS;
02213 msg.metric.int8 = 0;
02214
02215 if (macadd)
02216 strcpy ((char *) msg.macaddr, macadd);
02217 else
02218 msg.macaddr[0] = '\0';
02219 msg.metric_name = NODE_TXPOWER;
02220 if (dev_name)
02221 strcpy((char *) msg.dev_name, dev_name);
02222 else
02223 msg.dev_name[0] = '\0';
02224
02225 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02226 {
02227 fprintf(stderr, "Can't open: ");
02228 perror(CROSS_LAYER_DEV_NAME_PATH);
02229 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02230 msg.type_msg = T_ERROR_MSG;
02231 }
02232 nb_write = write(file, &msg, sizeof(msg));
02233 nb_read = read(file, &msg, sizeof(msg));
02234 if (nb_read == 0)
02235 {
02236 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02237 msg.type_msg = T_ERROR_MSG;
02238 }
02239 close(file);
02240
02241 (*code_err) = msg.id_error;
02242 return (unsigned char) msg.metric.int8;
02243 }
02244
02245
02246
02254 unsigned char
02255 get_node_negotiated_rate(char * macadd,
02256 char * dev_name,
02257 unsigned int * code_err)
02258 {
02259 int file, nb_write, nb_read;
02260 struct qos_metric_node_msg msg;
02261
02262 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02263 msg.type_msg = T_QUERY_MSG;
02264 msg.id_error = NO_ERRORS;
02265 msg.metric.int8 = 0;
02266
02267 if (macadd)
02268 strcpy ((char *) msg.macaddr, macadd);
02269 else
02270 msg.macaddr[0] = '\0';
02271 msg.metric_name = NODE_NEGOTIATED_RATE;
02272 if (dev_name)
02273 strcpy((char *) msg.dev_name, dev_name);
02274 else
02275 msg.dev_name[0] = '\0';
02276
02277 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02278 {
02279 fprintf(stderr, "Can't open: ");
02280 perror(CROSS_LAYER_DEV_NAME_PATH);
02281 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02282 msg.type_msg = T_ERROR_MSG;
02283 }
02284 nb_write = write(file, &msg, sizeof(msg));
02285 nb_read = read(file, &msg, sizeof(msg));
02286 if (nb_read == 0)
02287 {
02288 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02289 msg.type_msg = T_ERROR_MSG;
02290 }
02291 close(file);
02292
02293 (*code_err) = msg.id_error;
02294 return (unsigned char) msg.metric.int8;
02295 }
02296
02297
02298
02306 unsigned char
02307 get_node_rssi(char * macadd,
02308 char * dev_name,
02309 unsigned int * code_err)
02310 {
02311 int file, nb_write, nb_read;
02312 struct qos_metric_node_msg msg;
02313
02314 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02315 msg.type_msg = T_QUERY_MSG;
02316 msg.id_error = NO_ERRORS;
02317 msg.metric.int8 = 0;
02318
02319 if (macadd)
02320 strcpy ((char *) msg.macaddr, macadd);
02321 else
02322 msg.macaddr[0] = '\0';
02323
02324 msg.metric_name = NODE_RSSI;
02325 if (dev_name)
02326 strcpy((char *) msg.dev_name, dev_name);
02327 else
02328 msg.dev_name[0] = '\0';
02329
02330 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02331 {
02332 fprintf(stderr, "Can't open: ");
02333 perror(CROSS_LAYER_DEV_NAME_PATH);
02334 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02335 msg.type_msg = T_ERROR_MSG;
02336 }
02337 nb_write = write(file, &msg, sizeof(msg));
02338 nb_read = read(file, &msg, sizeof(msg));
02339 if (nb_read == 0)
02340 {
02341 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02342 msg.type_msg = T_ERROR_MSG;
02343 }
02344 close(file);
02345 (*code_err) = msg.id_error;
02346 return (unsigned char) msg.metric.int8;
02347 }
02348
02349
02350
02359 unsigned int
02360 get_node_on_tx_err(char * macadd,
02361 char * dev_name,
02362 unsigned int * code_err)
02363 {
02364 int file, nb_write, nb_read;
02365 struct qos_metric_node_msg msg;
02366
02367 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02368 msg.type_msg = T_QUERY_MSG;
02369 msg.id_error = NO_ERRORS;
02370 msg.metric.int32 = 0;
02371
02372 if (macadd)
02373 strcpy ((char *) msg.macaddr, macadd);
02374 else
02375 msg.macaddr[0] = '\0';
02376 msg.metric_name = NODE_ON_TX_ERR;
02377 if (dev_name)
02378 strcpy((char *) msg.dev_name, dev_name);
02379 else
02380 msg.dev_name[0] = '\0';
02381
02382 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02383 {
02384 fprintf(stderr, "Can't open: ");
02385 perror(CROSS_LAYER_DEV_NAME_PATH);
02386 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02387 msg.type_msg = T_ERROR_MSG;
02388 }
02389 nb_write = write(file, &msg, sizeof(msg));
02390 nb_read = read(file, &msg, sizeof(msg));
02391 if (nb_read == 0)
02392 {
02393 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02394 msg.type_msg = T_ERROR_MSG;
02395 }
02396 close(file);
02397
02398 (*code_err) = msg.id_error;
02399 return (unsigned int) msg.metric.int32;
02400 }
02401
02402
02411 unsigned int
02412 get_node_on_tx_ok(char * macadd,
02413 char * dev_name,
02414 unsigned int * code_err)
02415 {
02416 int file, nb_write, nb_read;
02417 struct qos_metric_node_msg msg;
02418
02419 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02420 msg.type_msg = T_QUERY_MSG;
02421 msg.id_error = NO_ERRORS;
02422 msg.metric.int32 = 0;
02423
02424 if (macadd)
02425 strcpy ((char *) msg.macaddr, macadd);
02426 else
02427 msg.macaddr[0] = '\0';
02428 msg.metric_name = NODE_ON_TX_OK;
02429 if (dev_name)
02430 strcpy((char *) msg.dev_name, dev_name);
02431 else
02432 msg.dev_name[0] = '\0';
02433
02434 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02435 {
02436 fprintf(stderr, "Can't open: ");
02437 perror(CROSS_LAYER_DEV_NAME_PATH);
02438 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02439 msg.type_msg = T_ERROR_MSG;
02440 }
02441 nb_write = write(file, &msg, sizeof(msg));
02442 nb_read = read(file, &msg, sizeof(msg));
02443 if (nb_read == 0)
02444 {
02445 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02446 msg.type_msg = T_ERROR_MSG;
02447 }
02448 close(file);
02449
02450 (*code_err) = msg.id_error;
02451 return (unsigned int) msg.metric.int32;
02452 }
02453
02454
02455
02464 unsigned int
02465 get_node_on_tx_retr(char * macadd,
02466 char * dev_name,
02467 unsigned int * code_err)
02468 {
02469 int file, nb_write, nb_read;
02470 struct qos_metric_node_msg msg;
02471
02472 msg.struct_id = T_QOS_METRIC_NODE_MSG;
02473 msg.type_msg = T_QUERY_MSG;
02474 msg.id_error = NO_ERRORS;
02475 msg.metric.int32 = 0;
02476
02477 if (macadd)
02478 strcpy ((char *) msg.macaddr, macadd);
02479 else
02480 msg.macaddr[0] = '\0';
02481 msg.metric_name = NODE_ON_TX_RETR;
02482 if (dev_name)
02483 strcpy((char *) msg.dev_name, dev_name);
02484 else
02485 msg.dev_name[0] = '\0';
02486
02487 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02488 {
02489 fprintf(stderr, "Can't open: ");
02490 perror(CROSS_LAYER_DEV_NAME_PATH);
02491 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02492 msg.type_msg = T_ERROR_MSG;
02493 }
02494 nb_write = write(file, &msg, sizeof(msg));
02495 nb_read = read(file, &msg, sizeof(msg));
02496 if (nb_read == 0)
02497 {
02498 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02499 msg.type_msg = T_ERROR_MSG;
02500 }
02501 close(file);
02502
02503 (*code_err) = msg.id_error;
02504 return (unsigned int) msg.metric.int32;
02505 }
02506
02507
02508
02509
02510
02511
02512
02513
02514
02515
02516
02517
02518
02519
02520
02521
02522
02523
02524
02525
02526
02527
02528
02529
02530
02531
02532
02533
02534
02535
02536
02537
02538
02539
02540
02541
02542
02543
02544
02545
02546
02547
02548
02549
02550
02551
02552
02553
02554
02555
02556
02557
02558
02559
02560
02561
02562
02563
02564
02565
02566
02567
02568
02569
02570
02571
02572
02573
02574
02575
02576
02577
02578
02579
02586 unsigned int
02587 get_ast_watchdog(char * dev_name,
02588 unsigned int * code_err)
02589 {
02590 int file, nb_write, nb_read;
02591 struct qos_metric_ath_msg msg;
02592
02593 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02594 msg.type_msg = T_QUERY_MSG;
02595 msg.id_error = NO_ERRORS;
02596 msg.metric_name = AST_WATCHDOG;
02597 msg.metric.int32 = 0;
02598
02599 if (dev_name)
02600 strcpy((char *) msg.dev_name, dev_name);
02601 else
02602 msg.dev_name[0] = '\0';
02603
02604 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02605 {
02606 fprintf(stderr, "Can't open: ");
02607 perror(CROSS_LAYER_DEV_NAME_PATH);
02608 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02609 msg.type_msg = T_ERROR_MSG;
02610 }
02611 nb_write = write(file, &msg, sizeof(msg));
02612 nb_read = read(file, &msg, sizeof(msg));
02613 if (nb_read == 0)
02614 {
02615 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02616 msg.type_msg = T_ERROR_MSG;
02617 }
02618 close(file);
02619
02620 (*code_err) = msg.id_error;
02621 return (unsigned int) msg.metric.int32;
02622 }
02623
02624
02631 unsigned int
02632 get_ast_hardware(char * dev_name,
02633 unsigned int * code_err)
02634 {
02635 int file, nb_write, nb_read;
02636 struct qos_metric_ath_msg msg;
02637
02638 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02639 msg.type_msg = T_QUERY_MSG;
02640 msg.id_error = NO_ERRORS;
02641 msg.metric_name = AST_HARDWARE;
02642 msg.metric.int32 = 0;
02643
02644 if (dev_name)
02645 strcpy((char *) msg.dev_name, dev_name);
02646 else
02647 msg.dev_name[0] = '\0';
02648
02649 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02650 {
02651 fprintf(stderr, "Can't open: ");
02652 perror(CROSS_LAYER_DEV_NAME_PATH);
02653 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02654 msg.type_msg = T_ERROR_MSG;
02655 }
02656 nb_write = write(file, &msg, sizeof(msg));
02657 nb_read = read(file, &msg, sizeof(msg));
02658 if (nb_read == 0)
02659 {
02660 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02661 msg.type_msg = T_ERROR_MSG;
02662 }
02663 close(file);
02664
02665 (*code_err) = msg.id_error;
02666 return (unsigned int) msg.metric.int32;
02667 }
02668
02669
02670
02671
02678 unsigned int
02679 get_ast_bmiss(char * dev_name,
02680 unsigned int * code_err)
02681 {
02682 int file, nb_write, nb_read;
02683 struct qos_metric_ath_msg msg;
02684
02685 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02686 msg.type_msg = T_QUERY_MSG;
02687 msg.id_error = NO_ERRORS;
02688 msg.metric_name = AST_BMISS;
02689 msg.metric.int32 = 0;
02690
02691 if (dev_name)
02692 strcpy((char *) msg.dev_name, dev_name);
02693 else
02694 msg.dev_name[0] = '\0';
02695
02696 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02697 {
02698 fprintf(stderr, "Can't open: ");
02699 perror(CROSS_LAYER_DEV_NAME_PATH);
02700 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02701 msg.type_msg = T_ERROR_MSG;
02702 }
02703 nb_write = write(file, &msg, sizeof(msg));
02704 nb_read = read(file, &msg, sizeof(msg));
02705 if (nb_read == 0)
02706 {
02707 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02708 msg.type_msg = T_ERROR_MSG;
02709 }
02710 close(file);
02711
02712 (*code_err) = msg.id_error;
02713 return (unsigned int) msg.metric.int32;
02714 }
02715
02716
02717
02724 unsigned int
02725 get_ast_bstuck(char * dev_name,
02726 unsigned int * code_err)
02727 {
02728 int file, nb_write, nb_read;
02729 struct qos_metric_ath_msg msg;
02730
02731 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02732 msg.type_msg = T_QUERY_MSG;
02733 msg.id_error = NO_ERRORS;
02734 msg.metric_name = AST_BSTUCK;
02735 msg.metric.int32 = 0;
02736
02737 if (dev_name)
02738 strcpy((char *) msg.dev_name, dev_name);
02739 else
02740 msg.dev_name[0] = '\0';
02741
02742 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02743 {
02744 fprintf(stderr, "Can't open: ");
02745 perror(CROSS_LAYER_DEV_NAME_PATH);
02746 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02747 msg.type_msg = T_ERROR_MSG;
02748 }
02749 nb_write = write(file, &msg, sizeof(msg));
02750 nb_read = read(file, &msg, sizeof(msg));
02751 if (nb_read == 0)
02752 {
02753 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02754 msg.type_msg = T_ERROR_MSG;
02755 }
02756 close(file);
02757
02758 (*code_err) = msg.id_error;
02759 return (unsigned int) msg.metric.int32;
02760 }
02761
02762
02769 unsigned int
02770 get_ast_rxorn(char * dev_name,
02771 unsigned int * code_err)
02772 {
02773 int file, nb_write, nb_read;
02774 struct qos_metric_ath_msg msg;
02775
02776 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02777 msg.type_msg = T_QUERY_MSG;
02778 msg.id_error = NO_ERRORS;
02779 msg.metric_name = AST_RXORN;
02780 msg.metric.int32 = 0;
02781
02782 if (dev_name)
02783 strcpy((char *) msg.dev_name, dev_name);
02784 else
02785 msg.dev_name[0] = '\0';
02786
02787 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02788 {
02789 fprintf(stderr, "Can't open: ");
02790 perror(CROSS_LAYER_DEV_NAME_PATH);
02791 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02792 msg.type_msg = T_ERROR_MSG;
02793 }
02794 nb_write = write(file, &msg, sizeof(msg));
02795 nb_read = read(file, &msg, sizeof(msg));
02796 if (nb_read == 0)
02797 {
02798 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02799 msg.type_msg = T_ERROR_MSG;
02800 }
02801 close(file);
02802
02803 (*code_err) = msg.id_error;
02804 return (unsigned int) msg.metric.int32;
02805 }
02806
02807
02808
02815 unsigned int
02816 get_ast_rxeol(char * dev_name,
02817 unsigned int * code_err)
02818 {
02819 int file, nb_write, nb_read;
02820 struct qos_metric_ath_msg msg;
02821
02822 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02823 msg.type_msg = T_QUERY_MSG;
02824 msg.id_error = NO_ERRORS;
02825 msg.metric_name = AST_RXEOL;
02826 msg.metric.int32 = 0;
02827
02828 if (dev_name)
02829 strcpy((char *) msg.dev_name, dev_name);
02830 else
02831 msg.dev_name[0] = '\0';
02832
02833 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02834 {
02835 fprintf(stderr, "Can't open: ");
02836 perror(CROSS_LAYER_DEV_NAME_PATH);
02837 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02838 msg.type_msg = T_ERROR_MSG;
02839 }
02840 nb_write = write(file, &msg, sizeof(msg));
02841 nb_read = read(file, &msg, sizeof(msg));
02842 if (nb_read == 0)
02843 {
02844 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02845 msg.type_msg = T_ERROR_MSG;
02846 }
02847 close(file);
02848
02849 (*code_err) = msg.id_error;
02850 return (unsigned int) msg.metric.int32;
02851 }
02852
02853
02860 unsigned int
02861 get_ast_txurn(char * dev_name,
02862 unsigned int * code_err)
02863 {
02864 int file, nb_write, nb_read;
02865 struct qos_metric_ath_msg msg;
02866
02867 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02868 msg.type_msg = T_QUERY_MSG;
02869 msg.id_error = NO_ERRORS;
02870 msg.metric_name = AST_TXURN;
02871 msg.metric.int32 = 0;
02872
02873 if (dev_name)
02874 strcpy((char *) msg.dev_name, dev_name);
02875 else
02876 msg.dev_name[0] = '\0';
02877
02878 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02879 {
02880 fprintf(stderr, "Can't open: ");
02881 perror(CROSS_LAYER_DEV_NAME_PATH);
02882 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02883 msg.type_msg = T_ERROR_MSG;
02884 }
02885 nb_write = write(file, &msg, sizeof(msg));
02886 nb_read = read(file, &msg, sizeof(msg));
02887 if (nb_read == 0)
02888 {
02889 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02890 msg.type_msg = T_ERROR_MSG;
02891 }
02892 close(file);
02893
02894 (*code_err) = msg.id_error;
02895 return (unsigned int) msg.metric.int32;
02896 }
02897
02898
02905 unsigned int
02906 get_ast_mib(char * dev_name,
02907 unsigned int * code_err)
02908 {
02909 int file, nb_write, nb_read;
02910 struct qos_metric_ath_msg msg;
02911
02912 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02913 msg.type_msg = T_QUERY_MSG;
02914 msg.id_error = NO_ERRORS;
02915 msg.metric_name = AST_MIB;
02916 msg.metric.int32 = 0;
02917
02918 if (dev_name)
02919 strcpy((char *) msg.dev_name, dev_name);
02920 else
02921 msg.dev_name[0] = '\0';
02922
02923 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02924 {
02925 fprintf(stderr, "Can't open: ");
02926 perror(CROSS_LAYER_DEV_NAME_PATH);
02927 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02928 msg.type_msg = T_ERROR_MSG;
02929 }
02930 nb_write = write(file, &msg, sizeof(msg));
02931 nb_read = read(file, &msg, sizeof(msg));
02932 if (nb_read == 0)
02933 {
02934 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02935 msg.type_msg = T_ERROR_MSG;
02936 }
02937 close(file);
02938
02939 (*code_err) = msg.id_error;
02940 return (unsigned int) msg.metric.int32;
02941 }
02942
02943
02950 unsigned int
02951 get_ast_intrcoal(char * dev_name,
02952 unsigned int * code_err)
02953 {
02954 int file, nb_write, nb_read;
02955 struct qos_metric_ath_msg msg;
02956
02957 msg.struct_id = T_QOS_METRIC_ATH_MSG;
02958 msg.type_msg = T_QUERY_MSG;
02959 msg.id_error = NO_ERRORS;
02960 msg.metric_name = AST_INTRCOAL;
02961 msg.metric.int32 = 0;
02962
02963 if (dev_name)
02964 strcpy((char *) msg.dev_name, dev_name);
02965 else
02966 msg.dev_name[0] = '\0';
02967
02968 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
02969 {
02970 fprintf(stderr, "Can't open: ");
02971 perror(CROSS_LAYER_DEV_NAME_PATH);
02972 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
02973 msg.type_msg = T_ERROR_MSG;
02974 }
02975 nb_write = write(file, &msg, sizeof(msg));
02976 nb_read = read(file, &msg, sizeof(msg));
02977 if (nb_read == 0)
02978 {
02979 msg.id_error = COULD_NOT_READ_UNIX_DEV;
02980 msg.type_msg = T_ERROR_MSG;
02981 }
02982 close(file);
02983
02984 (*code_err) = msg.id_error;
02985 return (unsigned int) msg.metric.int32;
02986 }
02987
02988
02995 unsigned int
02996 get_ast_tx_packets(char * dev_name,
02997 unsigned int * code_err)
02998 {
02999 int file, nb_write, nb_read;
03000 struct qos_metric_ath_msg msg;
03001
03002 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03003 msg.type_msg = T_QUERY_MSG;
03004 msg.id_error = NO_ERRORS;
03005 msg.metric_name = AST_TX_PACKETS;
03006 msg.metric.int32 = 0;
03007
03008 if (dev_name)
03009 strcpy((char *) msg.dev_name, dev_name);
03010 else
03011 msg.dev_name[0] = '\0';
03012
03013 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03014 {
03015 fprintf(stderr, "Can't open: ");
03016 perror(CROSS_LAYER_DEV_NAME_PATH);
03017 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03018 msg.type_msg = T_ERROR_MSG;
03019 }
03020 nb_write = write(file, &msg, sizeof(msg));
03021 nb_read = read(file, &msg, sizeof(msg));
03022 if (nb_read == 0)
03023 {
03024 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03025 msg.type_msg = T_ERROR_MSG;
03026 }
03027 close(file);
03028
03029 (*code_err) = msg.id_error;
03030 return (unsigned int) msg.metric.int32;
03031 }
03032
03033
03040 unsigned int
03041 get_ast_tx_mgmt(char * dev_name,
03042 unsigned int * code_err)
03043 {
03044 int file, nb_write, nb_read;
03045 struct qos_metric_ath_msg msg;
03046
03047 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03048 msg.type_msg = T_QUERY_MSG;
03049 msg.id_error = NO_ERRORS;
03050 msg.metric_name = AST_TX_MGMT;
03051 msg.metric.int32 = 0;
03052
03053 if (dev_name)
03054 strcpy((char *) msg.dev_name, dev_name);
03055 else
03056 msg.dev_name[0] = '\0';
03057
03058 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03059 {
03060 fprintf(stderr, "Can't open: ");
03061 perror(CROSS_LAYER_DEV_NAME_PATH);
03062 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03063 msg.type_msg = T_ERROR_MSG;
03064 }
03065 nb_write = write(file, &msg, sizeof(msg));
03066 nb_read = read(file, &msg, sizeof(msg));
03067 if (nb_read == 0)
03068 {
03069 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03070 msg.type_msg = T_ERROR_MSG;
03071 }
03072 close(file);
03073
03074 (*code_err) = msg.id_error;
03075 return (unsigned int) msg.metric.int32;
03076 }
03077
03078
03085 unsigned int
03086 get_ast_tx_discard(char * dev_name,
03087 unsigned int * code_err)
03088 {
03089 int file, nb_write, nb_read;
03090 struct qos_metric_ath_msg msg;
03091
03092 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03093 msg.type_msg = T_QUERY_MSG;
03094 msg.id_error = NO_ERRORS;
03095 msg.metric_name = AST_TX_DISCARD;
03096 msg.metric.int32 = 0;
03097
03098 if (dev_name)
03099 strcpy((char *) msg.dev_name, dev_name);
03100 else
03101 msg.dev_name[0] = '\0';
03102
03103 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03104 {
03105 fprintf(stderr, "Can't open: ");
03106 perror(CROSS_LAYER_DEV_NAME_PATH);
03107 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03108 msg.type_msg = T_ERROR_MSG;
03109 }
03110 nb_write = write(file, &msg, sizeof(msg));
03111 nb_read = read(file, &msg, sizeof(msg));
03112 if (nb_read == 0)
03113 {
03114 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03115 msg.type_msg = T_ERROR_MSG;
03116 }
03117 close(file);
03118
03119 (*code_err) = msg.id_error;
03120 return (unsigned int) msg.metric.int32;
03121 }
03122
03123
03130 unsigned int
03131 get_ast_tx_invalid(char * dev_name,
03132 unsigned int * code_err)
03133 {
03134 int file, nb_write, nb_read;
03135 struct qos_metric_ath_msg msg;
03136
03137 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03138 msg.type_msg = T_QUERY_MSG;
03139 msg.id_error = NO_ERRORS;
03140 msg.metric_name = AST_TX_INVALID;
03141 msg.metric.int32 = 0;
03142
03143 if (dev_name)
03144 strcpy((char *) msg.dev_name, dev_name);
03145 else
03146 msg.dev_name[0] = '\0';
03147
03148 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03149 {
03150 fprintf(stderr, "Can't open: ");
03151 perror(CROSS_LAYER_DEV_NAME_PATH);
03152 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03153 msg.type_msg = T_ERROR_MSG;
03154 }
03155 nb_write = write(file, &msg, sizeof(msg));
03156 nb_read = read(file, &msg, sizeof(msg));
03157 if (nb_read == 0)
03158 {
03159 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03160 msg.type_msg = T_ERROR_MSG;
03161 }
03162 close(file);
03163
03164 (*code_err) = msg.id_error;
03165 return (unsigned int) msg.metric.int32;
03166 }
03167
03168
03175 unsigned int
03176 get_ast_tx_qstop(char * dev_name,
03177 unsigned int * code_err)
03178 {
03179 int file, nb_write, nb_read;
03180 struct qos_metric_ath_msg msg;
03181
03182 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03183 msg.type_msg = T_QUERY_MSG;
03184 msg.id_error = NO_ERRORS;
03185 msg.metric_name = AST_TX_QSTOP;
03186 msg.metric.int32 = 0;
03187
03188 if (dev_name)
03189 strcpy((char *) msg.dev_name, dev_name);
03190 else
03191 msg.dev_name[0] = '\0';
03192
03193 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03194 {
03195 fprintf(stderr, "Can't open: ");
03196 perror(CROSS_LAYER_DEV_NAME_PATH);
03197 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03198 msg.type_msg = T_ERROR_MSG;
03199 }
03200 nb_write = write(file, &msg, sizeof(msg));
03201 nb_read = read(file, &msg, sizeof(msg));
03202 if (nb_read == 0)
03203 {
03204 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03205 msg.type_msg = T_ERROR_MSG;
03206 }
03207 close(file);
03208
03209 (*code_err) = msg.id_error;
03210 return (unsigned int) msg.metric.int32;
03211 }
03212
03213
03220 unsigned int
03221 get_ast_tx_encap(char * dev_name,
03222 unsigned int * code_err)
03223 {
03224 int file, nb_write, nb_read;
03225 struct qos_metric_ath_msg msg;
03226
03227 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03228 msg.type_msg = T_QUERY_MSG;
03229 msg.id_error = NO_ERRORS;
03230 msg.metric_name = AST_TX_ENCAP;
03231 msg.metric.int32 = 0;
03232
03233 if (dev_name)
03234 strcpy((char *) msg.dev_name, dev_name);
03235 else
03236 msg.dev_name[0] = '\0';
03237
03238 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03239 {
03240 fprintf(stderr, "Can't open: ");
03241 perror(CROSS_LAYER_DEV_NAME_PATH);
03242 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03243 msg.type_msg = T_ERROR_MSG;
03244 }
03245 nb_write = write(file, &msg, sizeof(msg));
03246 nb_read = read(file, &msg, sizeof(msg));
03247 if (nb_read == 0)
03248 {
03249 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03250 msg.type_msg = T_ERROR_MSG;
03251 }
03252 close(file);
03253
03254 (*code_err) = msg.id_error;
03255 return (unsigned int) msg.metric.int32;
03256 }
03257
03258
03265 unsigned int
03266 get_ast_tx_nonode(char * dev_name,
03267 unsigned int * code_err)
03268 {
03269 int file, nb_write, nb_read;
03270 struct qos_metric_ath_msg msg;
03271
03272 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03273 msg.type_msg = T_QUERY_MSG;
03274 msg.id_error = NO_ERRORS;
03275 msg.metric_name = AST_TX_NONODE;
03276 msg.metric.int32 = 0;
03277
03278 if (dev_name)
03279 strcpy((char *) msg.dev_name, dev_name);
03280 else
03281 msg.dev_name[0] = '\0';
03282
03283 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03284 {
03285 fprintf(stderr, "Can't open: ");
03286 perror(CROSS_LAYER_DEV_NAME_PATH);
03287 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03288 msg.type_msg = T_ERROR_MSG;
03289 }
03290 nb_write = write(file, &msg, sizeof(msg));
03291 nb_read = read(file, &msg, sizeof(msg));
03292 if (nb_read == 0)
03293 {
03294 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03295 msg.type_msg = T_ERROR_MSG;
03296 }
03297 close(file);
03298
03299 (*code_err) = msg.id_error;
03300 return (unsigned int) msg.metric.int32;
03301 }
03302
03303
03310 unsigned int
03311 get_ast_tx_nobuf(char * dev_name,
03312 unsigned int * code_err)
03313 {
03314 int file, nb_write, nb_read;
03315 struct qos_metric_ath_msg msg;
03316
03317 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03318 msg.type_msg = T_QUERY_MSG;
03319 msg.id_error = NO_ERRORS;
03320 msg.metric_name = AST_TX_NOBUF;
03321 msg.metric.int32 = 0;
03322
03323 if (dev_name)
03324 strcpy((char *) msg.dev_name, dev_name);
03325 else
03326 msg.dev_name[0] = '\0';
03327
03328 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03329 {
03330 fprintf(stderr, "Can't open: ");
03331 perror(CROSS_LAYER_DEV_NAME_PATH);
03332 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03333 msg.type_msg = T_ERROR_MSG;
03334 }
03335 nb_write = write(file, &msg, sizeof(msg));
03336 nb_read = read(file, &msg, sizeof(msg));
03337 if (nb_read == 0)
03338 {
03339 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03340 msg.type_msg = T_ERROR_MSG;
03341 }
03342 close(file);
03343
03344 (*code_err) = msg.id_error;
03345 return (unsigned int) msg.metric.int32;
03346 }
03347
03348
03355 unsigned int
03356 get_ast_tx_nobufmgt(char * dev_name,
03357 unsigned int * code_err)
03358 {
03359 int file, nb_write, nb_read;
03360 struct qos_metric_ath_msg msg;
03361
03362 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03363 msg.type_msg = T_QUERY_MSG;
03364 msg.id_error = NO_ERRORS;
03365 msg.metric_name = AST_TX_NOBUFMGT;
03366 msg.metric.int32 = 0;
03367
03368 if (dev_name)
03369 strcpy((char *) msg.dev_name, dev_name);
03370 else
03371 msg.dev_name[0] = '\0';
03372
03373 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03374 {
03375 fprintf(stderr, "Can't open: ");
03376 perror(CROSS_LAYER_DEV_NAME_PATH);
03377 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03378 msg.type_msg = T_ERROR_MSG;
03379 }
03380 nb_write = write(file, &msg, sizeof(msg));
03381 nb_read = read(file, &msg, sizeof(msg));
03382 if (nb_read == 0)
03383 {
03384 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03385 msg.type_msg = T_ERROR_MSG;
03386 }
03387 close(file);
03388
03389 (*code_err) = msg.id_error;
03390 return (unsigned int) msg.metric.int32;
03391 }
03392
03393
03400 unsigned int
03401 get_ast_tx_linear(char * dev_name,
03402 unsigned int * code_err)
03403 {
03404 int file, nb_write, nb_read;
03405 struct qos_metric_ath_msg msg;
03406
03407 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03408 msg.type_msg = T_QUERY_MSG;
03409 msg.id_error = NO_ERRORS;
03410 msg.metric_name = AST_TX_LINEAR;
03411 msg.metric.int32 = 0;
03412
03413 if (dev_name)
03414 strcpy((char *) msg.dev_name, dev_name);
03415 else
03416 msg.dev_name[0] = '\0';
03417
03418 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03419 {
03420 fprintf(stderr, "Can't open: ");
03421 perror(CROSS_LAYER_DEV_NAME_PATH);
03422 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03423 msg.type_msg = T_ERROR_MSG;
03424 }
03425 nb_write = write(file, &msg, sizeof(msg));
03426 nb_read = read(file, &msg, sizeof(msg));
03427 if (nb_read == 0)
03428 {
03429 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03430 msg.type_msg = T_ERROR_MSG;
03431 }
03432 close(file);
03433
03434 (*code_err) = msg.id_error;
03435 return (unsigned int) msg.metric.int32;
03436 }
03437
03438
03445 unsigned int
03446 get_ast_tx_nodata(char * dev_name,
03447 unsigned int * code_err)
03448 {
03449 int file, nb_write, nb_read;
03450 struct qos_metric_ath_msg msg;
03451
03452 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03453 msg.type_msg = T_QUERY_MSG;
03454 msg.id_error = NO_ERRORS;
03455 msg.metric_name = AST_TX_NODATA;
03456 msg.metric.int32 = 0;
03457
03458 if (dev_name)
03459 strcpy((char *) msg.dev_name, dev_name);
03460 else
03461 msg.dev_name[0] = '\0';
03462
03463 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03464 {
03465 fprintf(stderr, "Can't open: ");
03466 perror(CROSS_LAYER_DEV_NAME_PATH);
03467 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03468 msg.type_msg = T_ERROR_MSG;
03469 }
03470 nb_write = write(file, &msg, sizeof(msg));
03471 nb_read = read(file, &msg, sizeof(msg));
03472 if (nb_read == 0)
03473 {
03474 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03475 msg.type_msg = T_ERROR_MSG;
03476 }
03477 close(file);
03478
03479 (*code_err) = msg.id_error;
03480 return (unsigned int) msg.metric.int32;
03481 }
03482
03483
03490 unsigned int
03491 get_ast_tx_busdma(char * dev_name,
03492 unsigned int * code_err)
03493 {
03494 int file, nb_write, nb_read;
03495 struct qos_metric_ath_msg msg;
03496
03497 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03498 msg.type_msg = T_QUERY_MSG;
03499 msg.id_error = NO_ERRORS;
03500 msg.metric_name = AST_TX_BUSDMA;
03501 msg.metric.int32 = 0;
03502
03503 if (dev_name)
03504 strcpy((char *) msg.dev_name, dev_name);
03505 else
03506 msg.dev_name[0] = '\0';
03507
03508 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03509 {
03510 fprintf(stderr, "Can't open: ");
03511 perror(CROSS_LAYER_DEV_NAME_PATH);
03512 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03513 msg.type_msg = T_ERROR_MSG;
03514 }
03515 nb_write = write(file, &msg, sizeof(msg));
03516 nb_read = read(file, &msg, sizeof(msg));
03517 if (nb_read == 0)
03518 {
03519 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03520 msg.type_msg = T_ERROR_MSG;
03521 }
03522 close(file);
03523
03524 (*code_err) = msg.id_error;
03525 return (unsigned int) msg.metric.int32;
03526 }
03527
03528
03535 unsigned int
03536 get_ast_tx_xretries(char * dev_name,
03537 unsigned int * code_err)
03538 {
03539 int file, nb_write, nb_read;
03540 struct qos_metric_ath_msg msg;
03541
03542 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03543 msg.type_msg = T_QUERY_MSG;
03544 msg.id_error = NO_ERRORS;
03545 msg.metric_name = AST_TX_XRETRIES;
03546 msg.metric.int32 = 0;
03547
03548 if (dev_name)
03549 strcpy((char *) msg.dev_name, dev_name);
03550 else
03551 msg.dev_name[0] = '\0';
03552
03553 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03554 {
03555 fprintf(stderr, "Can't open: ");
03556 perror(CROSS_LAYER_DEV_NAME_PATH);
03557 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03558 msg.type_msg = T_ERROR_MSG;
03559 }
03560 nb_write = write(file, &msg, sizeof(msg));
03561 nb_read = read(file, &msg, sizeof(msg));
03562 if (nb_read == 0)
03563 {
03564 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03565 msg.type_msg = T_ERROR_MSG;
03566 }
03567 close(file);
03568
03569 (*code_err) = msg.id_error;
03570 return (unsigned int) msg.metric.int32;
03571 }
03572
03573
03580 unsigned int
03581 get_ast_tx_fifoerr(char * dev_name,
03582 unsigned int * code_err)
03583 {
03584 int file, nb_write, nb_read;
03585 struct qos_metric_ath_msg msg;
03586
03587 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03588 msg.type_msg = T_QUERY_MSG;
03589 msg.id_error = NO_ERRORS;
03590 msg.metric_name = AST_TX_FIFOERR;
03591 msg.metric.int32 = 0;
03592
03593 if (dev_name)
03594 strcpy((char *) msg.dev_name, dev_name);
03595 else
03596 msg.dev_name[0] = '\0';
03597
03598 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03599 {
03600 fprintf(stderr, "Can't open: ");
03601 perror(CROSS_LAYER_DEV_NAME_PATH);
03602 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03603 msg.type_msg = T_ERROR_MSG;
03604 }
03605 nb_write = write(file, &msg, sizeof(msg));
03606 nb_read = read(file, &msg, sizeof(msg));
03607 if (nb_read == 0)
03608 {
03609 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03610 msg.type_msg = T_ERROR_MSG;
03611 }
03612 close(file);
03613
03614 (*code_err) = msg.id_error;
03615 return (unsigned int) msg.metric.int32;
03616 }
03617
03618
03625 unsigned int
03626 get_ast_tx_filtered(char * dev_name,
03627 unsigned int * code_err)
03628 {
03629 int file, nb_write, nb_read;
03630 struct qos_metric_ath_msg msg;
03631
03632 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03633 msg.type_msg = T_QUERY_MSG;
03634 msg.id_error = NO_ERRORS;
03635 msg.metric_name = AST_TX_FILTERED;
03636 msg.metric.int32 = 0;
03637
03638 if (dev_name)
03639 strcpy((char *) msg.dev_name, dev_name);
03640 else
03641 msg.dev_name[0] = '\0';
03642
03643 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03644 {
03645 fprintf(stderr, "Can't open: ");
03646 perror(CROSS_LAYER_DEV_NAME_PATH);
03647 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03648 msg.type_msg = T_ERROR_MSG;
03649 }
03650 nb_write = write(file, &msg, sizeof(msg));
03651 nb_read = read(file, &msg, sizeof(msg));
03652 if (nb_read == 0)
03653 {
03654 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03655 msg.type_msg = T_ERROR_MSG;
03656 }
03657 close(file);
03658
03659 (*code_err) = msg.id_error;
03660 return (unsigned int) msg.metric.int32;
03661 }
03662
03663
03670 unsigned int
03671 get_ast_tx_shortretry(char * dev_name,
03672 unsigned int * code_err)
03673 {
03674 int file, nb_write, nb_read;
03675 struct qos_metric_ath_msg msg;
03676
03677 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03678 msg.type_msg = T_QUERY_MSG;
03679 msg.id_error = NO_ERRORS;
03680 msg.metric_name = AST_TX_SHORTRETRY;
03681 msg.metric.int32 = 0;
03682
03683 if (dev_name)
03684 strcpy((char *) msg.dev_name, dev_name);
03685 else
03686 msg.dev_name[0] = '\0';
03687
03688 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03689 {
03690 fprintf(stderr, "Can't open: ");
03691 perror(CROSS_LAYER_DEV_NAME_PATH);
03692 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03693 msg.type_msg = T_ERROR_MSG;
03694 }
03695 nb_write = write(file, &msg, sizeof(msg));
03696 nb_read = read(file, &msg, sizeof(msg));
03697 if (nb_read == 0)
03698 {
03699 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03700 msg.type_msg = T_ERROR_MSG;
03701 }
03702 close(file);
03703
03704 (*code_err) = msg.id_error;
03705 return (unsigned int) msg.metric.int32;
03706 }
03707
03708
03715 unsigned int
03716 get_ast_tx_longretry(char * dev_name,
03717 unsigned int * code_err)
03718 {
03719 int file, nb_write, nb_read;
03720 struct qos_metric_ath_msg msg;
03721
03722 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03723 msg.type_msg = T_QUERY_MSG;
03724 msg.id_error = NO_ERRORS;
03725 msg.metric_name = AST_TX_LONGRETRY;
03726 msg.metric.int32 = 0;
03727
03728 if (dev_name)
03729 strcpy((char *) msg.dev_name, dev_name);
03730 else
03731 msg.dev_name[0] = '\0';
03732
03733 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03734 {
03735 fprintf(stderr, "Can't open: ");
03736 perror(CROSS_LAYER_DEV_NAME_PATH);
03737 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03738 msg.type_msg = T_ERROR_MSG;
03739 }
03740 nb_write = write(file, &msg, sizeof(msg));
03741 nb_read = read(file, &msg, sizeof(msg));
03742 if (nb_read == 0)
03743 {
03744 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03745 msg.type_msg = T_ERROR_MSG;
03746 }
03747 close(file);
03748
03749 (*code_err) = msg.id_error;
03750 return (unsigned int) msg.metric.int32;
03751 }
03752
03753
03760 unsigned int
03761 get_ast_tx_badrate(char * dev_name,
03762 unsigned int * code_err)
03763 {
03764 int file, nb_write, nb_read;
03765 struct qos_metric_ath_msg msg;
03766
03767 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03768 msg.type_msg = T_QUERY_MSG;
03769 msg.id_error = NO_ERRORS;
03770 msg.metric_name = AST_TX_BADRATE;
03771 msg.metric.int32 = 0;
03772
03773 if (dev_name)
03774 strcpy((char *) msg.dev_name, dev_name);
03775 else
03776 msg.dev_name[0] = '\0';
03777
03778 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03779 {
03780 fprintf(stderr, "Can't open: ");
03781 perror(CROSS_LAYER_DEV_NAME_PATH);
03782 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03783 msg.type_msg = T_ERROR_MSG;
03784 }
03785 nb_write = write(file, &msg, sizeof(msg));
03786 nb_read = read(file, &msg, sizeof(msg));
03787 if (nb_read == 0)
03788 {
03789 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03790 msg.type_msg = T_ERROR_MSG;
03791 }
03792 close(file);
03793
03794 (*code_err) = msg.id_error;
03795 return (unsigned int) msg.metric.int32;
03796 }
03797
03798
03805 unsigned int
03806 get_ast_tx_noack(char * dev_name,
03807 unsigned int * code_err)
03808 {
03809 int file, nb_write, nb_read;
03810 struct qos_metric_ath_msg msg;
03811
03812 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03813 msg.type_msg = T_QUERY_MSG;
03814 msg.id_error = NO_ERRORS;
03815 msg.metric_name = AST_TX_NOACK;
03816 msg.metric.int32 = 0;
03817
03818 if (dev_name)
03819 strcpy((char *) msg.dev_name, dev_name);
03820 else
03821 msg.dev_name[0] = '\0';
03822
03823 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03824 {
03825 fprintf(stderr, "Can't open: ");
03826 perror(CROSS_LAYER_DEV_NAME_PATH);
03827 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03828 msg.type_msg = T_ERROR_MSG;
03829 }
03830 nb_write = write(file, &msg, sizeof(msg));
03831 nb_read = read(file, &msg, sizeof(msg));
03832 if (nb_read == 0)
03833 {
03834 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03835 msg.type_msg = T_ERROR_MSG;
03836 }
03837 close(file);
03838
03839 (*code_err) = msg.id_error;
03840 return (unsigned int) msg.metric.int32;
03841 }
03842
03843
03850 unsigned int
03851 get_ast_tx_rts(char * dev_name,
03852 unsigned int * code_err)
03853 {
03854 int file, nb_write, nb_read;
03855 struct qos_metric_ath_msg msg;
03856
03857 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03858 msg.type_msg = T_QUERY_MSG;
03859 msg.id_error = NO_ERRORS;
03860 msg.metric_name = AST_TX_RTS;
03861 msg.metric.int32 = 0;
03862
03863 if (dev_name)
03864 strcpy((char *) msg.dev_name, dev_name);
03865 else
03866 msg.dev_name[0] = '\0';
03867
03868 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03869 {
03870 fprintf(stderr, "Can't open: ");
03871 perror(CROSS_LAYER_DEV_NAME_PATH);
03872 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03873 msg.type_msg = T_ERROR_MSG;
03874 }
03875 nb_write = write(file, &msg, sizeof(msg));
03876 nb_read = read(file, &msg, sizeof(msg));
03877 if (nb_read == 0)
03878 {
03879 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03880 msg.type_msg = T_ERROR_MSG;
03881 }
03882 close(file);
03883
03884 (*code_err) = msg.id_error;
03885 return (unsigned int) msg.metric.int32;
03886 }
03887
03888
03895 unsigned int
03896 get_ast_tx_cts(char * dev_name,
03897 unsigned int * code_err)
03898 {
03899 int file, nb_write, nb_read;
03900 struct qos_metric_ath_msg msg;
03901
03902 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03903 msg.type_msg = T_QUERY_MSG;
03904 msg.id_error = NO_ERRORS;
03905 msg.metric_name = AST_TX_CTS;
03906 msg.metric.int32 = 0;
03907
03908 if (dev_name)
03909 strcpy((char *) msg.dev_name, dev_name);
03910 else
03911 msg.dev_name[0] = '\0';
03912
03913 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03914 {
03915 fprintf(stderr, "Can't open: ");
03916 perror(CROSS_LAYER_DEV_NAME_PATH);
03917 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03918 msg.type_msg = T_ERROR_MSG;
03919 }
03920 nb_write = write(file, &msg, sizeof(msg));
03921 nb_read = read(file, &msg, sizeof(msg));
03922 if (nb_read == 0)
03923 {
03924 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03925 msg.type_msg = T_ERROR_MSG;
03926 }
03927 close(file);
03928
03929 (*code_err) = msg.id_error;
03930 return (unsigned int) msg.metric.int32;
03931 }
03932
03933
03940 unsigned int
03941 get_ast_tx_shortpre(char * dev_name,
03942 unsigned int * code_err)
03943 {
03944 int file, nb_write, nb_read;
03945 struct qos_metric_ath_msg msg;
03946
03947 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03948 msg.type_msg = T_QUERY_MSG;
03949 msg.id_error = NO_ERRORS;
03950 msg.metric_name = AST_TX_SHORTPRE;
03951 msg.metric.int32 = 0;
03952
03953 if (dev_name)
03954 strcpy((char *) msg.dev_name, dev_name);
03955 else
03956 msg.dev_name[0] = '\0';
03957
03958 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
03959 {
03960 fprintf(stderr, "Can't open: ");
03961 perror(CROSS_LAYER_DEV_NAME_PATH);
03962 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
03963 msg.type_msg = T_ERROR_MSG;
03964 }
03965 nb_write = write(file, &msg, sizeof(msg));
03966 nb_read = read(file, &msg, sizeof(msg));
03967 if (nb_read == 0)
03968 {
03969 msg.id_error = COULD_NOT_READ_UNIX_DEV;
03970 msg.type_msg = T_ERROR_MSG;
03971 }
03972 close(file);
03973
03974 (*code_err) = msg.id_error;
03975 return (unsigned int) msg.metric.int32;
03976 }
03977
03978
03985 unsigned int
03986 get_ast_tx_altrate(char * dev_name,
03987 unsigned int * code_err)
03988 {
03989 int file, nb_write, nb_read;
03990 struct qos_metric_ath_msg msg;
03991
03992 msg.struct_id = T_QOS_METRIC_ATH_MSG;
03993 msg.type_msg = T_QUERY_MSG;
03994 msg.id_error = NO_ERRORS;
03995 msg.metric_name = AST_TX_ALTRATE;
03996 msg.metric.int32 = 0;
03997
03998 if (dev_name)
03999 strcpy((char *) msg.dev_name, dev_name);
04000 else
04001 msg.dev_name[0] = '\0';
04002
04003 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04004 {
04005 fprintf(stderr, "Can't open: ");
04006 perror(CROSS_LAYER_DEV_NAME_PATH);
04007 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04008 msg.type_msg = T_ERROR_MSG;
04009 }
04010 nb_write = write(file, &msg, sizeof(msg));
04011 nb_read = read(file, &msg, sizeof(msg));
04012 if (nb_read == 0)
04013 {
04014 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04015 msg.type_msg = T_ERROR_MSG;
04016 }
04017 close(file);
04018
04019 (*code_err) = msg.id_error;
04020 return (unsigned int) msg.metric.int32;
04021 }
04022
04023
04030 unsigned int
04031 get_ast_tx_protect(char * dev_name,
04032 unsigned int * code_err)
04033 {
04034 int file, nb_write, nb_read;
04035 struct qos_metric_ath_msg msg;
04036
04037 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04038 msg.type_msg = T_QUERY_MSG;
04039 msg.id_error = NO_ERRORS;
04040 msg.metric_name = AST_TX_PROTECT;
04041 msg.metric.int32 = 0;
04042
04043 if (dev_name)
04044 strcpy((char *) msg.dev_name, dev_name);
04045 else
04046 msg.dev_name[0] = '\0';
04047
04048 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04049 {
04050 fprintf(stderr, "Can't open: ");
04051 perror(CROSS_LAYER_DEV_NAME_PATH);
04052 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04053 msg.type_msg = T_ERROR_MSG;
04054 }
04055 nb_write = write(file, &msg, sizeof(msg));
04056 nb_read = read(file, &msg, sizeof(msg));
04057 if (nb_read == 0)
04058 {
04059 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04060 msg.type_msg = T_ERROR_MSG;
04061 }
04062 close(file);
04063
04064 (*code_err) = msg.id_error;
04065 return (unsigned int) msg.metric.int32;
04066 }
04067
04068
04075 unsigned int
04076 get_ast_tx_ctsburst(char * dev_name,
04077 unsigned int * code_err)
04078 {
04079 int file, nb_write, nb_read;
04080 struct qos_metric_ath_msg msg;
04081
04082 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04083 msg.type_msg = T_QUERY_MSG;
04084 msg.id_error = NO_ERRORS;
04085 msg.metric_name = AST_TX_CTSBURST;
04086 msg.metric.int32 = 0;
04087
04088 if (dev_name)
04089 strcpy((char *) msg.dev_name, dev_name);
04090 else
04091 msg.dev_name[0] = '\0';
04092
04093 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04094 {
04095 fprintf(stderr, "Can't open: ");
04096 perror(CROSS_LAYER_DEV_NAME_PATH);
04097 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04098 msg.type_msg = T_ERROR_MSG;
04099 }
04100 nb_write = write(file, &msg, sizeof(msg));
04101 nb_read = read(file, &msg, sizeof(msg));
04102 if (nb_read == 0)
04103 {
04104 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04105 msg.type_msg = T_ERROR_MSG;
04106 }
04107 close(file);
04108
04109 (*code_err) = msg.id_error;
04110 return (unsigned int) msg.metric.int32;
04111 }
04112
04113
04120 unsigned int
04121 get_ast_tx_ctsext(char * dev_name,
04122 unsigned int * code_err)
04123 {
04124 int file, nb_write, nb_read;
04125 struct qos_metric_ath_msg msg;
04126
04127 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04128 msg.type_msg = T_QUERY_MSG;
04129 msg.id_error = NO_ERRORS;
04130 msg.metric_name = AST_TX_CTSEXT;
04131 msg.metric.int32 = 0;
04132
04133 if (dev_name)
04134 strcpy((char *) msg.dev_name, dev_name);
04135 else
04136 msg.dev_name[0] = '\0';
04137
04138 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04139 {
04140 fprintf(stderr, "Can't open: ");
04141 perror(CROSS_LAYER_DEV_NAME_PATH);
04142 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04143 msg.type_msg = T_ERROR_MSG;
04144 }
04145 nb_write = write(file, &msg, sizeof(msg));
04146 nb_read = read(file, &msg, sizeof(msg));
04147 if (nb_read == 0)
04148 {
04149 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04150 msg.type_msg = T_ERROR_MSG;
04151 }
04152 close(file);
04153
04154 (*code_err) = msg.id_error;
04155 return (unsigned int) msg.metric.int32;
04156 }
04157
04158
04165 unsigned int
04166 get_ast_rx_nobuf(char * dev_name,
04167 unsigned int * code_err)
04168 {
04169 int file, nb_write, nb_read;
04170 struct qos_metric_ath_msg msg;
04171
04172 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04173 msg.type_msg = T_QUERY_MSG;
04174 msg.id_error = NO_ERRORS;
04175 msg.metric_name = AST_RX_NOBUF;
04176 msg.metric.int32 = 0;
04177
04178 if (dev_name)
04179 strcpy((char *) msg.dev_name, dev_name);
04180 else
04181 msg.dev_name[0] = '\0';
04182
04183 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04184 {
04185 fprintf(stderr, "Can't open: ");
04186 perror(CROSS_LAYER_DEV_NAME_PATH);
04187 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04188 msg.type_msg = T_ERROR_MSG;
04189 }
04190 nb_write = write(file, &msg, sizeof(msg));
04191 nb_read = read(file, &msg, sizeof(msg));
04192 if (nb_read == 0)
04193 {
04194 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04195 msg.type_msg = T_ERROR_MSG;
04196 }
04197 close(file);
04198
04199 (*code_err) = msg.id_error;
04200 return (unsigned int) msg.metric.int32;
04201 }
04202
04203
04210 unsigned int
04211 get_ast_rx_busdma(char * dev_name,
04212 unsigned int * code_err)
04213 {
04214 int file, nb_write, nb_read;
04215 struct qos_metric_ath_msg msg;
04216
04217 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04218 msg.type_msg = T_QUERY_MSG;
04219 msg.id_error = NO_ERRORS;
04220 msg.metric_name = AST_RX_BUSDMA;
04221 msg.metric.int32 = 0;
04222
04223 if (dev_name)
04224 strcpy((char *) msg.dev_name, dev_name);
04225 else
04226 msg.dev_name[0] = '\0';
04227
04228 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04229 {
04230 fprintf(stderr, "Can't open: ");
04231 perror(CROSS_LAYER_DEV_NAME_PATH);
04232 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04233 msg.type_msg = T_ERROR_MSG;
04234 }
04235 nb_write = write(file, &msg, sizeof(msg));
04236 nb_read = read(file, &msg, sizeof(msg));
04237 if (nb_read == 0)
04238 {
04239 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04240 msg.type_msg = T_ERROR_MSG;
04241 }
04242 close(file);
04243
04244 (*code_err) = msg.id_error;
04245 return (unsigned int) msg.metric.int32;
04246 }
04247
04248
04255 unsigned int
04256 get_ast_rx_orn(char * dev_name,
04257 unsigned int * code_err)
04258 {
04259 int file, nb_write, nb_read;
04260 struct qos_metric_ath_msg msg;
04261
04262 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04263 msg.type_msg = T_QUERY_MSG;
04264 msg.id_error = NO_ERRORS;
04265 msg.metric_name = AST_RX_ORN;
04266 msg.metric.int32 = 0;
04267
04268 if (dev_name)
04269 strcpy((char *) msg.dev_name, dev_name);
04270 else
04271 msg.dev_name[0] = '\0';
04272
04273 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04274 {
04275 fprintf(stderr, "Can't open: ");
04276 perror(CROSS_LAYER_DEV_NAME_PATH);
04277 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04278 msg.type_msg = T_ERROR_MSG;
04279 }
04280 nb_write = write(file, &msg, sizeof(msg));
04281 nb_read = read(file, &msg, sizeof(msg));
04282 if (nb_read == 0)
04283 {
04284 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04285 msg.type_msg = T_ERROR_MSG;
04286 }
04287 close(file);
04288
04289 (*code_err) = msg.id_error;
04290 return (unsigned int) msg.metric.int32;
04291 }
04292
04293
04300 unsigned int
04301 get_ast_rx_crcerr(char * dev_name,
04302 unsigned int * code_err)
04303 {
04304 int file, nb_write, nb_read;
04305 struct qos_metric_ath_msg msg;
04306
04307 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04308 msg.type_msg = T_QUERY_MSG;
04309 msg.id_error = NO_ERRORS;
04310 msg.metric_name = AST_RX_CRCERR;
04311 msg.metric.int32 = 0;
04312
04313 if (dev_name)
04314 strcpy((char *) msg.dev_name, dev_name);
04315 else
04316 msg.dev_name[0] = '\0';
04317
04318 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04319 {
04320 fprintf(stderr, "Can't open: ");
04321 perror(CROSS_LAYER_DEV_NAME_PATH);
04322 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04323 msg.type_msg = T_ERROR_MSG;
04324 }
04325 nb_write = write(file, &msg, sizeof(msg));
04326 nb_read = read(file, &msg, sizeof(msg));
04327 if (nb_read == 0)
04328 {
04329 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04330 msg.type_msg = T_ERROR_MSG;
04331 }
04332 close(file);
04333
04334 (*code_err) = msg.id_error;
04335 return (unsigned int) msg.metric.int32;
04336 }
04337
04338
04345 unsigned int
04346 get_ast_rx_fifoerr(char * dev_name,
04347 unsigned int * code_err)
04348 {
04349 int file, nb_write, nb_read;
04350 struct qos_metric_ath_msg msg;
04351
04352 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04353 msg.type_msg = T_QUERY_MSG;
04354 msg.id_error = NO_ERRORS;
04355 msg.metric_name = AST_RX_FIFOERR;
04356 msg.metric.int32 = 0;
04357
04358 if (dev_name)
04359 strcpy((char *) msg.dev_name, dev_name);
04360 else
04361 msg.dev_name[0] = '\0';
04362
04363 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04364 {
04365 fprintf(stderr, "Can't open: ");
04366 perror(CROSS_LAYER_DEV_NAME_PATH);
04367 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04368 msg.type_msg = T_ERROR_MSG;
04369 }
04370 nb_write = write(file, &msg, sizeof(msg));
04371 nb_read = read(file, &msg, sizeof(msg));
04372 if (nb_read == 0)
04373 {
04374 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04375 msg.type_msg = T_ERROR_MSG;
04376 }
04377 close(file);
04378
04379 (*code_err) = msg.id_error;
04380 return (unsigned int) msg.metric.int32;
04381 }
04382
04383
04390 unsigned int
04391 get_ast_rx_badcrypt(char * dev_name,
04392 unsigned int * code_err)
04393 {
04394 int file, nb_write, nb_read;
04395 struct qos_metric_ath_msg msg;
04396
04397 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04398 msg.type_msg = T_QUERY_MSG;
04399 msg.id_error = NO_ERRORS;
04400 msg.metric_name = AST_RX_BADCRYPT;
04401 msg.metric.int32 = 0;
04402
04403 if (dev_name)
04404 strcpy((char *) msg.dev_name, dev_name);
04405 else
04406 msg.dev_name[0] = '\0';
04407
04408 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04409 {
04410 fprintf(stderr, "Can't open: ");
04411 perror(CROSS_LAYER_DEV_NAME_PATH);
04412 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04413 msg.type_msg = T_ERROR_MSG;
04414 }
04415 nb_write = write(file, &msg, sizeof(msg));
04416 nb_read = read(file, &msg, sizeof(msg));
04417 if (nb_read == 0)
04418 {
04419 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04420 msg.type_msg = T_ERROR_MSG;
04421 }
04422 close(file);
04423
04424 (*code_err) = msg.id_error;
04425 return (unsigned int) msg.metric.int32;
04426 }
04427
04428
04435 unsigned int
04436 get_ast_rx_badmic(char * dev_name,
04437 unsigned int * code_err)
04438 {
04439 int file, nb_write, nb_read;
04440 struct qos_metric_ath_msg msg;
04441
04442 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04443 msg.type_msg = T_QUERY_MSG;
04444 msg.id_error = NO_ERRORS;
04445 msg.metric_name = AST_RX_BADMIC;
04446 msg.metric.int32 = 0;
04447
04448 if (dev_name)
04449 strcpy((char *) msg.dev_name, dev_name);
04450 else
04451 msg.dev_name[0] = '\0';
04452
04453 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04454 {
04455 fprintf(stderr, "Can't open: ");
04456 perror(CROSS_LAYER_DEV_NAME_PATH);
04457 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04458 msg.type_msg = T_ERROR_MSG;
04459 }
04460 nb_write = write(file, &msg, sizeof(msg));
04461 nb_read = read(file, &msg, sizeof(msg));
04462 if (nb_read == 0)
04463 {
04464 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04465 msg.type_msg = T_ERROR_MSG;
04466 }
04467 close(file);
04468
04469 (*code_err) = msg.id_error;
04470 return (unsigned int) msg.metric.int32;
04471 }
04472
04473
04480 unsigned int
04481 get_ast_rx_phyerr(char * dev_name,
04482 unsigned int * code_err)
04483 {
04484 int file, nb_write, nb_read;
04485 struct qos_metric_ath_msg msg;
04486
04487 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04488 msg.type_msg = T_QUERY_MSG;
04489 msg.id_error = NO_ERRORS;
04490 msg.metric_name = AST_RX_PHYERR;
04491 msg.metric.int32 = 0;
04492
04493 if (dev_name)
04494 strcpy((char *) msg.dev_name, dev_name);
04495 else
04496 msg.dev_name[0] = '\0';
04497
04498 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04499 {
04500 fprintf(stderr, "Can't open: ");
04501 perror(CROSS_LAYER_DEV_NAME_PATH);
04502 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04503 msg.type_msg = T_ERROR_MSG;
04504 }
04505 nb_write = write(file, &msg, sizeof(msg));
04506 nb_read = read(file, &msg, sizeof(msg));
04507 if (nb_read == 0)
04508 {
04509 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04510 msg.type_msg = T_ERROR_MSG;
04511 }
04512 close(file);
04513
04514 (*code_err) = msg.id_error;
04515 return (unsigned int) msg.metric.int32;
04516 }
04517
04518
04525 unsigned int
04526 get_ast_rx_tooshort(char * dev_name,
04527 unsigned int * code_err)
04528 {
04529 int file, nb_write, nb_read;
04530 struct qos_metric_ath_msg msg;
04531
04532 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04533 msg.type_msg = T_QUERY_MSG;
04534 msg.id_error = NO_ERRORS;
04535 msg.metric_name = AST_RX_TOOSHORT;
04536 msg.metric.int32 = 0;
04537
04538 if (dev_name)
04539 strcpy((char *) msg.dev_name, dev_name);
04540 else
04541 msg.dev_name[0] = '\0';
04542
04543 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04544 {
04545 fprintf(stderr, "Can't open: ");
04546 perror(CROSS_LAYER_DEV_NAME_PATH);
04547 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04548 msg.type_msg = T_ERROR_MSG;
04549 }
04550 nb_write = write(file, &msg, sizeof(msg));
04551 nb_read = read(file, &msg, sizeof(msg));
04552 if (nb_read == 0)
04553 {
04554 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04555 msg.type_msg = T_ERROR_MSG;
04556 }
04557 close(file);
04558
04559 (*code_err) = msg.id_error;
04560 return (unsigned int) msg.metric.int32;
04561 }
04562
04563
04570 unsigned int
04571 get_ast_rx_toobig(char * dev_name,
04572 unsigned int * code_err)
04573 {
04574 int file, nb_write, nb_read;
04575 struct qos_metric_ath_msg msg;
04576
04577 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04578 msg.type_msg = T_QUERY_MSG;
04579 msg.id_error = NO_ERRORS;
04580 msg.metric_name = AST_RX_TOOBIG;
04581 msg.metric.int32 = 0;
04582
04583 if (dev_name)
04584 strcpy((char *) msg.dev_name, dev_name);
04585 else
04586 msg.dev_name[0] = '\0';
04587
04588 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04589 {
04590 fprintf(stderr, "Can't open: ");
04591 perror(CROSS_LAYER_DEV_NAME_PATH);
04592 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04593 msg.type_msg = T_ERROR_MSG;
04594 }
04595 nb_write = write(file, &msg, sizeof(msg));
04596 nb_read = read(file, &msg, sizeof(msg));
04597 if (nb_read == 0)
04598 {
04599 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04600 msg.type_msg = T_ERROR_MSG;
04601 }
04602 close(file);
04603
04604 (*code_err) = msg.id_error;
04605 return (unsigned int) msg.metric.int32;
04606 }
04607
04608
04615 unsigned int
04616 get_ast_rx_packets(char * dev_name,
04617 unsigned int * code_err)
04618 {
04619 int file, nb_write, nb_read;
04620 struct qos_metric_ath_msg msg;
04621
04622 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04623 msg.type_msg = T_QUERY_MSG;
04624 msg.id_error = NO_ERRORS;
04625 msg.metric_name = AST_RX_PACKETS;
04626 msg.metric.int32 = 0;
04627
04628 if (dev_name)
04629 strcpy((char *) msg.dev_name, dev_name);
04630 else
04631 msg.dev_name[0] = '\0';
04632
04633 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04634 {
04635 fprintf(stderr, "Can't open: ");
04636 perror(CROSS_LAYER_DEV_NAME_PATH);
04637 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04638 msg.type_msg = T_ERROR_MSG;
04639 }
04640 nb_write = write(file, &msg, sizeof(msg));
04641 nb_read = read(file, &msg, sizeof(msg));
04642 if (nb_read == 0)
04643 {
04644 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04645 msg.type_msg = T_ERROR_MSG;
04646 }
04647 close(file);
04648
04649 (*code_err) = msg.id_error;
04650 return (unsigned int) msg.metric.int32;
04651 }
04652
04653
04660 unsigned int
04661 get_ast_rx_mgt(char * dev_name,
04662 unsigned int * code_err)
04663 {
04664 int file, nb_write, nb_read;
04665 struct qos_metric_ath_msg msg;
04666
04667 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04668 msg.type_msg = T_QUERY_MSG;
04669 msg.id_error = NO_ERRORS;
04670 msg.metric_name = AST_RX_MGT;
04671 msg.metric.int32 = 0;
04672
04673 if (dev_name)
04674 strcpy((char *) msg.dev_name, dev_name);
04675 else
04676 msg.dev_name[0] = '\0';
04677
04678 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04679 {
04680 fprintf(stderr, "Can't open: ");
04681 perror(CROSS_LAYER_DEV_NAME_PATH);
04682 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04683 msg.type_msg = T_ERROR_MSG;
04684 }
04685 nb_write = write(file, &msg, sizeof(msg));
04686 nb_read = read(file, &msg, sizeof(msg));
04687 if (nb_read == 0)
04688 {
04689 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04690 msg.type_msg = T_ERROR_MSG;
04691 }
04692 close(file);
04693
04694 (*code_err) = msg.id_error;
04695 return (unsigned int) msg.metric.int32;
04696 }
04697
04698
04705 unsigned int
04706 get_ast_rx_ctl(char * dev_name,
04707 unsigned int * code_err)
04708 {
04709 int file, nb_write, nb_read;
04710 struct qos_metric_ath_msg msg;
04711
04712 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04713 msg.type_msg = T_QUERY_MSG;
04714 msg.id_error = NO_ERRORS;
04715 msg.metric_name = AST_RX_CTL;
04716 msg.metric.int32 = 0;
04717
04718 if (dev_name)
04719 strcpy((char *) msg.dev_name, dev_name);
04720 else
04721 msg.dev_name[0] = '\0';
04722
04723 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04724 {
04725 fprintf(stderr, "Can't open: ");
04726 perror(CROSS_LAYER_DEV_NAME_PATH);
04727 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04728 msg.type_msg = T_ERROR_MSG;
04729 }
04730 nb_write = write(file, &msg, sizeof(msg));
04731 nb_read = read(file, &msg, sizeof(msg));
04732 if (nb_read == 0)
04733 {
04734 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04735 msg.type_msg = T_ERROR_MSG;
04736 }
04737 close(file);
04738
04739 (*code_err) = msg.id_error;
04740 return (unsigned int) msg.metric.int32;
04741 }
04742
04743
04750 unsigned char
04751 get_ast_tx_rssi(char * dev_name,
04752 unsigned int * code_err)
04753 {
04754 int file, nb_write, nb_read;
04755 struct qos_metric_ath_msg msg;
04756
04757 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04758 msg.type_msg = T_QUERY_MSG;
04759 msg.id_error = NO_ERRORS;
04760 msg.metric_name = AST_TX_RSSI;
04761 msg.metric.int8 = 0;
04762
04763 if (dev_name)
04764 strcpy((char *) msg.dev_name, dev_name);
04765 else
04766 msg.dev_name[0] = '\0';
04767 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04768 {
04769 fprintf(stderr, "Can't open: ");
04770 perror(CROSS_LAYER_DEV_NAME_PATH);
04771 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04772 msg.type_msg = T_ERROR_MSG;
04773 }
04774 nb_write = write(file, &msg, sizeof(msg));
04775 nb_read = read(file, &msg, sizeof(msg));
04776 if (nb_read == 0)
04777 {
04778 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04779 msg.type_msg = T_ERROR_MSG;
04780 }
04781 close(file);
04782
04783 (*code_err) = msg.id_error;
04784 return (unsigned char) msg.metric.int8;
04785 }
04786
04787
04794 unsigned char
04795 get_ast_rx_rssi(char * dev_name,
04796 unsigned int * code_err)
04797 {
04798 int file, nb_write, nb_read;
04799 struct qos_metric_ath_msg msg;
04800
04801 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04802 msg.type_msg = T_QUERY_MSG;
04803 msg.id_error = NO_ERRORS;
04804 msg.metric_name = AST_RX_RSSI;
04805 msg.metric.int8 = 0;
04806
04807 if (dev_name)
04808 strcpy((char *) msg.dev_name, dev_name);
04809 else
04810 msg.dev_name[0] = '\0';
04811
04812 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04813 {
04814 fprintf(stderr, "Can't open: ");
04815 perror(CROSS_LAYER_DEV_NAME_PATH);
04816 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04817 msg.type_msg = T_ERROR_MSG;
04818 }
04819 nb_write = write(file, &msg, sizeof(msg));
04820 nb_read = read(file, &msg, sizeof(msg));
04821 if (nb_read == 0)
04822 {
04823 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04824 msg.type_msg = T_ERROR_MSG;
04825 }
04826 close(file);
04827
04828 (*code_err) = msg.id_error;
04829 return (unsigned char) msg.metric.int8;
04830 }
04831
04832
04839 unsigned int
04840 get_ast_be_xmit(char * dev_name,
04841 unsigned int * code_err)
04842 {
04843 int file, nb_write, nb_read;
04844 struct qos_metric_ath_msg msg;
04845
04846 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04847 msg.type_msg = T_QUERY_MSG;
04848 msg.id_error = NO_ERRORS;
04849 msg.metric_name = AST_BE_XMIT;
04850 msg.metric.int32 = 0;
04851
04852 if (dev_name)
04853 strcpy((char *) msg.dev_name, dev_name);
04854 else
04855 msg.dev_name[0] = '\0';
04856
04857 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04858 {
04859 fprintf(stderr, "Can't open: ");
04860 perror(CROSS_LAYER_DEV_NAME_PATH);
04861 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04862 msg.type_msg = T_ERROR_MSG;
04863 }
04864 nb_write = write(file, &msg, sizeof(msg));
04865 nb_read = read(file, &msg, sizeof(msg));
04866 if (nb_read == 0)
04867 {
04868 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04869 msg.type_msg = T_ERROR_MSG;
04870 }
04871 close(file);
04872
04873 (*code_err) = msg.id_error;
04874 return (unsigned int) msg.metric.int32;
04875 }
04876
04877
04884 unsigned int
04885 get_ast_be_nobuf(char * dev_name,
04886 unsigned int * code_err)
04887 {
04888 int file, nb_write, nb_read;
04889 struct qos_metric_ath_msg msg;
04890
04891 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04892 msg.type_msg = T_QUERY_MSG;
04893 msg.id_error = NO_ERRORS;
04894 msg.metric_name = AST_BE_NOBUF;
04895 msg.metric.int32 = 0;
04896
04897 if (dev_name)
04898 strcpy((char *) msg.dev_name, dev_name);
04899 else
04900 msg.dev_name[0] = '\0';
04901
04902 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04903 {
04904 fprintf(stderr, "Can't open: ");
04905 perror(CROSS_LAYER_DEV_NAME_PATH);
04906 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04907 msg.type_msg = T_ERROR_MSG;
04908 }
04909 nb_write = write(file, &msg, sizeof(msg));
04910 nb_read = read(file, &msg, sizeof(msg));
04911 if (nb_read == 0)
04912 {
04913 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04914 msg.type_msg = T_ERROR_MSG;
04915 }
04916 close(file);
04917
04918 (*code_err) = msg.id_error;
04919 return (unsigned int) msg.metric.int32;
04920 }
04921
04922
04929 unsigned int
04930 get_ast_per_cal(char * dev_name,
04931 unsigned int * code_err)
04932 {
04933 int file, nb_write, nb_read;
04934 struct qos_metric_ath_msg msg;
04935
04936 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04937 msg.type_msg = T_QUERY_MSG;
04938 msg.id_error = NO_ERRORS;
04939 msg.metric_name = AST_PER_CAL;
04940 msg.metric.int32 = 0;
04941
04942 if (dev_name)
04943 strcpy((char *) msg.dev_name, dev_name);
04944 else
04945 msg.dev_name[0] = '\0';
04946
04947 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04948 {
04949 fprintf(stderr, "Can't open: ");
04950 perror(CROSS_LAYER_DEV_NAME_PATH);
04951 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04952 msg.type_msg = T_ERROR_MSG;
04953 }
04954 nb_write = write(file, &msg, sizeof(msg));
04955 nb_read = read(file, &msg, sizeof(msg));
04956 if (nb_read == 0)
04957 {
04958 msg.id_error = COULD_NOT_READ_UNIX_DEV;
04959 msg.type_msg = T_ERROR_MSG;
04960 }
04961 close(file);
04962
04963 (*code_err) = msg.id_error;
04964 return (unsigned int) msg.metric.int32;
04965 }
04966
04967
04974 unsigned int
04975 get_ast_per_calfail(char * dev_name,
04976 unsigned int * code_err)
04977 {
04978 int file, nb_write, nb_read;
04979 struct qos_metric_ath_msg msg;
04980
04981 msg.struct_id = T_QOS_METRIC_ATH_MSG;
04982 msg.type_msg = T_QUERY_MSG;
04983 msg.id_error = NO_ERRORS;
04984 msg.metric_name = AST_PER_CALFAIL;
04985 msg.metric.int32 = 0;
04986
04987 if (dev_name)
04988 strcpy((char *) msg.dev_name, dev_name);
04989 else
04990 msg.dev_name[0] = '\0';
04991
04992 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
04993 {
04994 fprintf(stderr, "Can't open: ");
04995 perror(CROSS_LAYER_DEV_NAME_PATH);
04996 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
04997 msg.type_msg = T_ERROR_MSG;
04998 }
04999 nb_write = write(file, &msg, sizeof(msg));
05000 nb_read = read(file, &msg, sizeof(msg));
05001 if (nb_read == 0)
05002 {
05003 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05004 msg.type_msg = T_ERROR_MSG;
05005 }
05006 close(file);
05007
05008 (*code_err) = msg.id_error;
05009 return (unsigned int) msg.metric.int32;
05010 }
05011
05012
05019 unsigned int
05020 get_ast_per_rfgain(char * dev_name,
05021 unsigned int * code_err)
05022 {
05023 int file, nb_write, nb_read;
05024 struct qos_metric_ath_msg msg;
05025
05026 msg.struct_id = T_QOS_METRIC_ATH_MSG;
05027 msg.type_msg = T_QUERY_MSG;
05028 msg.id_error = NO_ERRORS;
05029 msg.metric_name = AST_PER_RFGAIN;
05030 msg.metric.int32 = 0;
05031
05032 if (dev_name)
05033 strcpy((char *) msg.dev_name, dev_name);
05034 else
05035 msg.dev_name[0] = '\0';
05036
05037 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05038 {
05039 fprintf(stderr, "Can't open: ");
05040 perror(CROSS_LAYER_DEV_NAME_PATH);
05041 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05042 msg.type_msg = T_ERROR_MSG;
05043 }
05044 nb_write = write(file, &msg, sizeof(msg));
05045 nb_read = read(file, &msg, sizeof(msg));
05046 if (nb_read == 0)
05047 {
05048 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05049 msg.type_msg = T_ERROR_MSG;
05050 }
05051 close(file);
05052
05053 (*code_err) = msg.id_error;
05054 return (unsigned int) msg.metric.int32;
05055 }
05056
05057
05064 unsigned int
05065 get_ast_rate_calls(char * dev_name,
05066 unsigned int * code_err)
05067 {
05068 int file, nb_write, nb_read;
05069 struct qos_metric_ath_msg msg;
05070
05071 msg.struct_id = T_QOS_METRIC_ATH_MSG;
05072 msg.type_msg = T_QUERY_MSG;
05073 msg.id_error = NO_ERRORS;
05074 msg.metric_name = AST_RATE_CALLS;
05075 msg.metric.int32 = 0;
05076
05077 if (dev_name)
05078 strcpy((char *) msg.dev_name, dev_name);
05079 else
05080 msg.dev_name[0] = '\0';
05081
05082 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05083 {
05084 fprintf(stderr, "Can't open: ");
05085 perror(CROSS_LAYER_DEV_NAME_PATH);
05086 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05087 msg.type_msg = T_ERROR_MSG;
05088 }
05089 nb_write = write(file, &msg, sizeof(msg));
05090 nb_read = read(file, &msg, sizeof(msg));
05091 if (nb_read == 0)
05092 {
05093 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05094 msg.type_msg = T_ERROR_MSG;
05095 }
05096 close(file);
05097
05098 (*code_err) = msg.id_error;
05099 return (unsigned int) msg.metric.int32;
05100 }
05101
05102
05109 unsigned int
05110 get_ast_rate_raise(char * dev_name,
05111 unsigned int * code_err)
05112 {
05113 int file, nb_write, nb_read;
05114 struct qos_metric_ath_msg msg;
05115
05116 msg.struct_id = T_QOS_METRIC_ATH_MSG;
05117 msg.type_msg = T_QUERY_MSG;
05118 msg.id_error = NO_ERRORS;
05119 msg.metric_name = AST_RATE_RAISE;
05120 msg.metric.int32 = 0;
05121
05122 if (dev_name)
05123 strcpy((char *) msg.dev_name, dev_name);
05124 else
05125 msg.dev_name[0] = '\0';
05126
05127 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05128 {
05129 fprintf(stderr, "Can't open: ");
05130 perror(CROSS_LAYER_DEV_NAME_PATH);
05131 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05132 msg.type_msg = T_ERROR_MSG;
05133 }
05134 nb_write = write(file, &msg, sizeof(msg));
05135 nb_read = read(file, &msg, sizeof(msg));
05136 if (nb_read == 0)
05137 {
05138 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05139 msg.type_msg = T_ERROR_MSG;
05140 }
05141 close(file);
05142
05143 (*code_err) = msg.id_error;
05144 return (unsigned int) msg.metric.int32;
05145 }
05146
05147
05154 unsigned int
05155 get_ast_rate_drop(char * dev_name,
05156 unsigned int * code_err)
05157 {
05158 int file, nb_write, nb_read;
05159 struct qos_metric_ath_msg msg;
05160
05161 msg.struct_id = T_QOS_METRIC_ATH_MSG;
05162 msg.type_msg = T_QUERY_MSG;
05163 msg.id_error = NO_ERRORS;
05164 msg.metric_name = AST_RATE_DROP;
05165 msg.metric.int32 = 0;
05166
05167 if (dev_name)
05168 strcpy((char *) msg.dev_name, dev_name);
05169 else
05170 msg.dev_name[0] = '\0';
05171
05172 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05173 {
05174 fprintf(stderr, "Can't open: ");
05175 perror(CROSS_LAYER_DEV_NAME_PATH);
05176 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05177 msg.type_msg = T_ERROR_MSG;
05178 }
05179 nb_write = write(file, &msg, sizeof(msg));
05180 nb_read = read(file, &msg, sizeof(msg));
05181 if (nb_read == 0)
05182 {
05183 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05184 msg.type_msg = T_ERROR_MSG;
05185 }
05186 close(file);
05187
05188 (*code_err) = msg.id_error;
05189 return (unsigned int) msg.metric.int32;
05190 }
05191
05192
05199 unsigned int
05200 get_ast_ant_defswitch(char * dev_name,
05201 unsigned int * code_err)
05202 {
05203 int file, nb_write, nb_read;
05204 struct qos_metric_ath_msg msg;
05205
05206 msg.struct_id = T_QOS_METRIC_ATH_MSG;
05207 msg.type_msg = T_QUERY_MSG;
05208 msg.id_error = NO_ERRORS;
05209 msg.metric_name = AST_ANT_DEFSWITCH;
05210 msg.metric.int32 = 0;
05211
05212 if (dev_name)
05213 strcpy((char *) msg.dev_name, dev_name);
05214 else
05215 msg.dev_name[0] = '\0';
05216
05217 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05218 {
05219 fprintf(stderr, "Can't open: ");
05220 perror(CROSS_LAYER_DEV_NAME_PATH);
05221 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05222 msg.type_msg = T_ERROR_MSG;
05223 }
05224 nb_write = write(file, &msg, sizeof(msg));
05225 nb_read = read(file, &msg, sizeof(msg));
05226 if (nb_read == 0)
05227 {
05228 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05229 msg.type_msg = T_ERROR_MSG;
05230 }
05231 close(file);
05232
05233 (*code_err) = msg.id_error;
05234 return (unsigned int) msg.metric.int32;
05235 }
05236
05237
05244 unsigned int
05245 get_ast_ant_txswitch(char * dev_name,
05246 unsigned int * code_err)
05247 {
05248 int file, nb_write, nb_read;
05249 struct qos_metric_ath_msg msg;
05250
05251 msg.struct_id = T_QOS_METRIC_ATH_MSG;
05252 msg.type_msg = T_QUERY_MSG;
05253 msg.id_error = NO_ERRORS;
05254 msg.metric_name = AST_ANT_TXSWITCH;
05255 msg.metric.int32 = 0;
05256
05257 if (dev_name)
05258 strcpy((char *) msg.dev_name, dev_name);
05259 else
05260 msg.dev_name[0] = '\0';
05261
05262 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05263 {
05264 fprintf(stderr, "Can't open: ");
05265 perror(CROSS_LAYER_DEV_NAME_PATH);
05266 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05267 msg.type_msg = T_ERROR_MSG;
05268 }
05269 nb_write = write(file, &msg, sizeof(msg));
05270 nb_read = read(file, &msg, sizeof(msg));
05271 if (nb_read == 0)
05272 {
05273 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05274 msg.type_msg = T_ERROR_MSG;
05275 }
05276 close(file);
05277
05278 (*code_err) = msg.id_error;
05279 return (unsigned int) msg.metric.int32;
05280 }
05281
05282
05283
05284
05285
05286
05287
05288
05289
05290
05291
05292
05293
05294
05295
05296
05297
05298
05299
05300
05301
05302
05303
05304
05305
05306
05307
05308
05309
05310
05311
05312
05313
05314
05315
05316
05317
05318
05319
05320
05321
05322
05323
05324
05325
05326
05327
05328
05329
05330
05331
05332
05333
05334
05335
05336
05337
05338
05339
05340
05341
05342
05343
05344
05345
05346
05347
05348
05349
05350
05351
05352
05353
05354
05355
05356
05357
05358
05359
05360
05361
05362
05363
05364
05365
05366
05367
05368
05369
05370
05371
05372
05379 unsigned int
05380 get_is_rx_badversion(char * dev_name,
05381 unsigned int * code_err)
05382 {
05383 int file, nb_write, nb_read;
05384 struct qos_metric_net80211_msg msg;
05385
05386 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05387 msg.type_msg = T_QUERY_MSG;
05388 msg.id_error = NO_ERRORS;
05389 msg.metric_name = IS_RX_BADVERSION;
05390 msg.metric.int32 = 0;
05391
05392 if (dev_name)
05393 strcpy((char *) msg.dev_name, dev_name);
05394 else
05395 msg.dev_name[0] = '\0';
05396
05397 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05398 {
05399 fprintf(stderr, "Can't open: ");
05400 perror(CROSS_LAYER_DEV_NAME_PATH);
05401 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05402 msg.type_msg = T_ERROR_MSG;
05403 }
05404 nb_write = write(file, &msg, sizeof(msg));
05405 nb_read = read(file, &msg, sizeof(msg));
05406 if (nb_read == 0)
05407 {
05408 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05409 msg.type_msg = T_ERROR_MSG;
05410 }
05411 close(file);
05412
05413 (*code_err) = msg.id_error;
05414 return (unsigned int) msg.metric.int32;
05415 }
05416
05417
05418
05425 unsigned int
05426 get_is_rx_tooshort(char * dev_name,
05427 unsigned int * code_err)
05428 {
05429 int file, nb_write, nb_read;
05430 struct qos_metric_net80211_msg msg;
05431
05432 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05433 msg.type_msg = T_QUERY_MSG;
05434 msg.id_error = NO_ERRORS;
05435 msg.metric_name = IS_RX_TOOSHORT;
05436 msg.metric.int32 = 0;
05437
05438 if (dev_name)
05439 strcpy((char *) msg.dev_name, dev_name);
05440 else
05441 msg.dev_name[0] = '\0';
05442
05443 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05444 {
05445 fprintf(stderr, "Can't open: ");
05446 perror(CROSS_LAYER_DEV_NAME_PATH);
05447 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05448 msg.type_msg = T_ERROR_MSG;
05449 }
05450 nb_write = write(file, &msg, sizeof(msg));
05451 nb_read = read(file, &msg, sizeof(msg));
05452 if (nb_read == 0)
05453 {
05454 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05455 msg.type_msg = T_ERROR_MSG;
05456 }
05457 close(file);
05458
05459 (*code_err) = msg.id_error;
05460 return (unsigned int) msg.metric.int32;
05461 }
05462
05463
05470 unsigned int
05471 get_is_rx_wrongbss(char * dev_name,
05472 unsigned int * code_err)
05473 {
05474 int file, nb_write, nb_read;
05475 struct qos_metric_net80211_msg msg;
05476
05477 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05478 msg.type_msg = T_QUERY_MSG;
05479 msg.id_error = NO_ERRORS;
05480 msg.metric_name = IS_RX_WRONGBSS;
05481 msg.metric.int32 = 0;
05482
05483 if (dev_name)
05484 strcpy((char *) msg.dev_name, dev_name);
05485 else
05486 msg.dev_name[0] = '\0';
05487
05488 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05489 {
05490 fprintf(stderr, "Can't open: ");
05491 perror(CROSS_LAYER_DEV_NAME_PATH);
05492 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05493 msg.type_msg = T_ERROR_MSG;
05494 }
05495 nb_write = write(file, &msg, sizeof(msg));
05496 nb_read = read(file, &msg, sizeof(msg));
05497 if (nb_read == 0)
05498 {
05499 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05500 msg.type_msg = T_ERROR_MSG;
05501 }
05502 close(file);
05503
05504 (*code_err) = msg.id_error;
05505 return (unsigned int) msg.metric.int32;
05506 }
05507
05508
05515 unsigned int
05516 get_is_rx_dup(char * dev_name,
05517 unsigned int * code_err)
05518 {
05519 int file, nb_write, nb_read;
05520 struct qos_metric_net80211_msg msg;
05521
05522 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05523 msg.type_msg = T_QUERY_MSG;
05524 msg.id_error = NO_ERRORS;
05525 msg.metric_name = IS_RX_DUP;
05526 msg.metric.int32 = 0;
05527
05528 if (dev_name)
05529 strcpy((char *) msg.dev_name, dev_name);
05530 else
05531 msg.dev_name[0] = '\0';
05532
05533 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05534 {
05535 fprintf(stderr, "Can't open: ");
05536 perror(CROSS_LAYER_DEV_NAME_PATH);
05537 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05538 msg.type_msg = T_ERROR_MSG;
05539 }
05540 nb_write = write(file, &msg, sizeof(msg));
05541 nb_read = read(file, &msg, sizeof(msg));
05542 if (nb_read == 0)
05543 {
05544 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05545 msg.type_msg = T_ERROR_MSG;
05546 }
05547 close(file);
05548
05549 (*code_err) = msg.id_error;
05550 return (unsigned int) msg.metric.int32;
05551 }
05552
05553
05560 unsigned int
05561 get_is_rx_wrongdir(char * dev_name,
05562 unsigned int * code_err)
05563 {
05564 int file, nb_write, nb_read;
05565 struct qos_metric_net80211_msg msg;
05566
05567 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05568 msg.type_msg = T_QUERY_MSG;
05569 msg.id_error = NO_ERRORS;
05570 msg.metric_name = IS_RX_WRONGDIR;
05571 msg.metric.int32 = 0;
05572
05573 if (dev_name)
05574 strcpy((char *) msg.dev_name, dev_name);
05575 else
05576 msg.dev_name[0] = '\0';
05577
05578 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05579 {
05580 fprintf(stderr, "Can't open: ");
05581 perror(CROSS_LAYER_DEV_NAME_PATH);
05582 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05583 msg.type_msg = T_ERROR_MSG;
05584 }
05585 nb_write = write(file, &msg, sizeof(msg));
05586 nb_read = read(file, &msg, sizeof(msg));
05587 if (nb_read == 0)
05588 {
05589 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05590 msg.type_msg = T_ERROR_MSG;
05591 }
05592 close(file);
05593
05594 (*code_err) = msg.id_error;
05595 return (unsigned int) msg.metric.int32;
05596 }
05597
05598
05605 unsigned int
05606 get_is_rx_mcastecho(char * dev_name,
05607 unsigned int * code_err)
05608 {
05609 int file, nb_write, nb_read;
05610 struct qos_metric_net80211_msg msg;
05611
05612 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05613 msg.type_msg = T_QUERY_MSG;
05614 msg.id_error = NO_ERRORS;
05615 msg.metric_name = IS_RX_MCASTECHO;
05616 msg.metric.int32 = 0;
05617
05618 if (dev_name)
05619 strcpy((char *) msg.dev_name, dev_name);
05620 else
05621 msg.dev_name[0] = '\0';
05622
05623 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05624 {
05625 fprintf(stderr, "Can't open: ");
05626 perror(CROSS_LAYER_DEV_NAME_PATH);
05627 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05628 msg.type_msg = T_ERROR_MSG;
05629 }
05630 nb_write = write(file, &msg, sizeof(msg));
05631 nb_read = read(file, &msg, sizeof(msg));
05632 if (nb_read == 0)
05633 {
05634 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05635 msg.type_msg = T_ERROR_MSG;
05636 }
05637 close(file);
05638
05639 (*code_err) = msg.id_error;
05640 return (unsigned int) msg.metric.int32;
05641 }
05642
05643
05644
05651 unsigned int
05652 get_is_rx_notassoc(char * dev_name,
05653 unsigned int * code_err)
05654 {
05655 int file, nb_write, nb_read;
05656 struct qos_metric_net80211_msg msg;
05657
05658 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05659 msg.type_msg = T_QUERY_MSG;
05660 msg.id_error = NO_ERRORS;
05661 msg.metric_name = IS_RX_NOTASSOC;
05662 msg.metric.int32 = 0;
05663
05664 if (dev_name)
05665 strcpy((char *) msg.dev_name, dev_name);
05666 else
05667 msg.dev_name[0] = '\0';
05668
05669 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05670 {
05671 fprintf(stderr, "Can't open: ");
05672 perror(CROSS_LAYER_DEV_NAME_PATH);
05673 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05674 msg.type_msg = T_ERROR_MSG;
05675 }
05676 nb_write = write(file, &msg, sizeof(msg));
05677 nb_read = read(file, &msg, sizeof(msg));
05678 if (nb_read == 0)
05679 {
05680 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05681 msg.type_msg = T_ERROR_MSG;
05682 }
05683 close(file);
05684
05685 (*code_err) = msg.id_error;
05686 return (unsigned int) msg.metric.int32;
05687 }
05688
05689
05696 unsigned int
05697 get_is_rx_noprivacy(char * dev_name,
05698 unsigned int * code_err)
05699 {
05700 int file, nb_write, nb_read;
05701 struct qos_metric_net80211_msg msg;
05702
05703 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05704 msg.type_msg = T_QUERY_MSG;
05705 msg.id_error = NO_ERRORS;
05706 msg.metric_name = IS_RX_NOPRIVACY;
05707 msg.metric.int32 = 0;
05708
05709 if (dev_name)
05710 strcpy((char *) msg.dev_name, dev_name);
05711 else
05712 msg.dev_name[0] = '\0';
05713
05714 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05715 {
05716 fprintf(stderr, "Can't open: ");
05717 perror(CROSS_LAYER_DEV_NAME_PATH);
05718 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05719 msg.type_msg = T_ERROR_MSG;
05720 }
05721 nb_write = write(file, &msg, sizeof(msg));
05722 nb_read = read(file, &msg, sizeof(msg));
05723 if (nb_read == 0)
05724 {
05725 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05726 msg.type_msg = T_ERROR_MSG;
05727 }
05728 close(file);
05729
05730 (*code_err) = msg.id_error;
05731 return (unsigned int) msg.metric.int32;
05732 }
05733
05734
05741 unsigned int
05742 get_is_rx_unencrypted(char * dev_name,
05743 unsigned int * code_err)
05744 {
05745 int file, nb_write, nb_read;
05746 struct qos_metric_net80211_msg msg;
05747
05748 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05749 msg.type_msg = T_QUERY_MSG;
05750 msg.id_error = NO_ERRORS;
05751 msg.metric_name = IS_RX_UNENCRYPTED;
05752 msg.metric.int32 = 0;
05753
05754 if (dev_name)
05755 strcpy((char *) msg.dev_name, dev_name);
05756 else
05757 msg.dev_name[0] = '\0';
05758
05759 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05760 {
05761 fprintf(stderr, "Can't open: ");
05762 perror(CROSS_LAYER_DEV_NAME_PATH);
05763 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05764 msg.type_msg = T_ERROR_MSG;
05765 }
05766 nb_write = write(file, &msg, sizeof(msg));
05767 nb_read = read(file, &msg, sizeof(msg));
05768 if (nb_read == 0)
05769 {
05770 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05771 msg.type_msg = T_ERROR_MSG;
05772 }
05773 close(file);
05774
05775 (*code_err) = msg.id_error;
05776 return (unsigned int) msg.metric.int32;
05777 }
05778
05779
05786 unsigned int
05787 get_is_rx_wepfail(char * dev_name,
05788 unsigned int * code_err)
05789 {
05790 int file, nb_write, nb_read;
05791 struct qos_metric_net80211_msg msg;
05792
05793 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05794 msg.type_msg = T_QUERY_MSG;
05795 msg.id_error = NO_ERRORS;
05796 msg.metric_name = IS_RX_WEPFAIL;
05797 msg.metric.int32 = 0;
05798
05799 if (dev_name)
05800 strcpy((char *) msg.dev_name, dev_name);
05801 else
05802 msg.dev_name[0] = '\0';
05803
05804 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05805 {
05806 fprintf(stderr, "Can't open: ");
05807 perror(CROSS_LAYER_DEV_NAME_PATH);
05808 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05809 msg.type_msg = T_ERROR_MSG;
05810 }
05811 nb_write = write(file, &msg, sizeof(msg));
05812 nb_read = read(file, &msg, sizeof(msg));
05813 if (nb_read == 0)
05814 {
05815 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05816 msg.type_msg = T_ERROR_MSG;
05817 }
05818 close(file);
05819
05820 (*code_err) = msg.id_error;
05821 return (unsigned int) msg.metric.int32;
05822 }
05823
05824
05831 unsigned int
05832 get_is_rx_decap(char * dev_name,
05833 unsigned int * code_err)
05834 {
05835 int file, nb_write, nb_read;
05836 struct qos_metric_net80211_msg msg;
05837
05838 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05839 msg.type_msg = T_QUERY_MSG;
05840 msg.id_error = NO_ERRORS;
05841 msg.metric_name = IS_RX_DECAP;
05842 msg.metric.int32 = 0;
05843
05844 if (dev_name)
05845 strcpy((char *) msg.dev_name, dev_name);
05846 else
05847 msg.dev_name[0] = '\0';
05848
05849 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05850 {
05851 fprintf(stderr, "Can't open: ");
05852 perror(CROSS_LAYER_DEV_NAME_PATH);
05853 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05854 msg.type_msg = T_ERROR_MSG;
05855 }
05856 nb_write = write(file, &msg, sizeof(msg));
05857 nb_read = read(file, &msg, sizeof(msg));
05858 if (nb_read == 0)
05859 {
05860 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05861 msg.type_msg = T_ERROR_MSG;
05862 }
05863 close(file);
05864
05865 (*code_err) = msg.id_error;
05866 return (unsigned int) msg.metric.int32;
05867 }
05868
05869
05876 unsigned int
05877 get_is_rx_mgtdiscard(char * dev_name,
05878 unsigned int * code_err)
05879 {
05880 int file, nb_write, nb_read;
05881 struct qos_metric_net80211_msg msg;
05882
05883 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05884 msg.type_msg = T_QUERY_MSG;
05885 msg.id_error = NO_ERRORS;
05886 msg.metric_name = IS_RX_MGTDISCARD;
05887 msg.metric.int32 = 0;
05888
05889 if (dev_name)
05890 strcpy((char *) msg.dev_name, dev_name);
05891 else
05892 msg.dev_name[0] = '\0';
05893
05894 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05895 {
05896 fprintf(stderr, "Can't open: ");
05897 perror(CROSS_LAYER_DEV_NAME_PATH);
05898 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05899 msg.type_msg = T_ERROR_MSG;
05900 }
05901 nb_write = write(file, &msg, sizeof(msg));
05902 nb_read = read(file, &msg, sizeof(msg));
05903 if (nb_read == 0)
05904 {
05905 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05906 msg.type_msg = T_ERROR_MSG;
05907 }
05908 close(file);
05909
05910 (*code_err) = msg.id_error;
05911 return (unsigned int) msg.metric.int32;
05912 }
05913
05914
05915
05922 unsigned int
05923 get_is_rx_ctl(char * dev_name,
05924 unsigned int * code_err)
05925 {
05926 int file, nb_write, nb_read;
05927 struct qos_metric_net80211_msg msg;
05928
05929 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05930 msg.type_msg = T_QUERY_MSG;
05931 msg.id_error = NO_ERRORS;
05932 msg.metric_name = IS_RX_CTL;
05933 msg.metric.int32 = 0;
05934
05935 if (dev_name)
05936 strcpy((char *) msg.dev_name, dev_name);
05937 else
05938 msg.dev_name[0] = '\0';
05939
05940 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05941 {
05942 fprintf(stderr, "Can't open: ");
05943 perror(CROSS_LAYER_DEV_NAME_PATH);
05944 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05945 msg.type_msg = T_ERROR_MSG;
05946 }
05947 nb_write = write(file, &msg, sizeof(msg));
05948 nb_read = read(file, &msg, sizeof(msg));
05949 if (nb_read == 0)
05950 {
05951 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05952 msg.type_msg = T_ERROR_MSG;
05953 }
05954 close(file);
05955
05956 (*code_err) = msg.id_error;
05957 return (unsigned int) msg.metric.int32;
05958 }
05959
05960
05967 unsigned int
05968 get_is_rx_beacon(char * dev_name,
05969 unsigned int * code_err)
05970 {
05971 int file, nb_write, nb_read;
05972 struct qos_metric_net80211_msg msg;
05973
05974 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
05975 msg.type_msg = T_QUERY_MSG;
05976 msg.id_error = NO_ERRORS;
05977 msg.metric_name = IS_RX_BEACON;
05978 msg.metric.int32 = 0;
05979
05980 if (dev_name)
05981 strcpy((char *) msg.dev_name, dev_name);
05982 else
05983 msg.dev_name[0] = '\0';
05984
05985 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
05986 {
05987 fprintf(stderr, "Can't open: ");
05988 perror(CROSS_LAYER_DEV_NAME_PATH);
05989 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
05990 msg.type_msg = T_ERROR_MSG;
05991 }
05992 nb_write = write(file, &msg, sizeof(msg));
05993 nb_read = read(file, &msg, sizeof(msg));
05994 if (nb_read == 0)
05995 {
05996 msg.id_error = COULD_NOT_READ_UNIX_DEV;
05997 msg.type_msg = T_ERROR_MSG;
05998 }
05999 close(file);
06000
06001 (*code_err) = msg.id_error;
06002 return (unsigned int) msg.metric.int32;
06003 }
06004
06005
06012 unsigned int
06013 get_is_rx_rstoobig(char * dev_name,
06014 unsigned int * code_err)
06015 {
06016 int file, nb_write, nb_read;
06017 struct qos_metric_net80211_msg msg;
06018
06019 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06020 msg.type_msg = T_QUERY_MSG;
06021 msg.id_error = NO_ERRORS;
06022 msg.metric_name = IS_RX_RSTOOBIG;
06023 msg.metric.int32 = 0;
06024
06025 if (dev_name)
06026 strcpy((char *) msg.dev_name, dev_name);
06027 else
06028 msg.dev_name[0] = '\0';
06029
06030 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06031 {
06032 fprintf(stderr, "Can't open: ");
06033 perror(CROSS_LAYER_DEV_NAME_PATH);
06034 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06035 msg.type_msg = T_ERROR_MSG;
06036 }
06037 nb_write = write(file, &msg, sizeof(msg));
06038 nb_read = read(file, &msg, sizeof(msg));
06039 if (nb_read == 0)
06040 {
06041 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06042 msg.type_msg = T_ERROR_MSG;
06043 }
06044 close(file);
06045
06046 (*code_err) = msg.id_error;
06047 return (unsigned int) msg.metric.int32;
06048 }
06049
06050
06057 unsigned int
06058 get_is_rx_elem_missing(char * dev_name,
06059 unsigned int * code_err)
06060 {
06061 int file, nb_write, nb_read;
06062 struct qos_metric_net80211_msg msg;
06063
06064 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06065 msg.type_msg = T_QUERY_MSG;
06066 msg.id_error = NO_ERRORS;
06067 msg.metric_name = IS_RX_ELEM_MISSING;
06068 msg.metric.int32 = 0;
06069
06070 if (dev_name)
06071 strcpy((char *) msg.dev_name, dev_name);
06072 else
06073 msg.dev_name[0] = '\0';
06074
06075 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06076 {
06077 fprintf(stderr, "Can't open: ");
06078 perror(CROSS_LAYER_DEV_NAME_PATH);
06079 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06080 msg.type_msg = T_ERROR_MSG;
06081 }
06082 nb_write = write(file, &msg, sizeof(msg));
06083 nb_read = read(file, &msg, sizeof(msg));
06084 if (nb_read == 0)
06085 {
06086 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06087 msg.type_msg = T_ERROR_MSG;
06088 }
06089 close(file);
06090
06091 (*code_err) = msg.id_error;
06092 return (unsigned int) msg.metric.int32;
06093 }
06094
06095
06102 unsigned int
06103 get_is_rx_elem_toobig(char * dev_name,
06104 unsigned int * code_err)
06105 {
06106 int file, nb_write, nb_read;
06107 struct qos_metric_net80211_msg msg;
06108
06109 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06110 msg.type_msg = T_QUERY_MSG;
06111 msg.id_error = NO_ERRORS;
06112 msg.metric_name = IS_RX_ELEM_TOOBIG;
06113 msg.metric.int32 = 0;
06114
06115 if (dev_name)
06116 strcpy((char *) msg.dev_name, dev_name);
06117 else
06118 msg.dev_name[0] = '\0';
06119
06120 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06121 {
06122 fprintf(stderr, "Can't open: ");
06123 perror(CROSS_LAYER_DEV_NAME_PATH);
06124 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06125 msg.type_msg = T_ERROR_MSG;
06126 }
06127 nb_write = write(file, &msg, sizeof(msg));
06128 nb_read = read(file, &msg, sizeof(msg));
06129 if (nb_read == 0)
06130 {
06131 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06132 msg.type_msg = T_ERROR_MSG;
06133 }
06134 close(file);
06135
06136 (*code_err) = msg.id_error;
06137 return (unsigned int) msg.metric.int32;
06138 }
06139
06140
06147 unsigned int
06148 get_is_rx_elem_toosmall(char * dev_name,
06149 unsigned int * code_err)
06150 {
06151 int file, nb_write, nb_read;
06152 struct qos_metric_net80211_msg msg;
06153
06154 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06155 msg.type_msg = T_QUERY_MSG;
06156 msg.id_error = NO_ERRORS;
06157 msg.metric_name = IS_RX_ELEM_TOOSMALL;
06158 msg.metric.int32 = 0;
06159
06160 if (dev_name)
06161 strcpy((char *) msg.dev_name, dev_name);
06162 else
06163 msg.dev_name[0] = '\0';
06164
06165 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06166 {
06167 fprintf(stderr, "Can't open: ");
06168 perror(CROSS_LAYER_DEV_NAME_PATH);
06169 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06170 msg.type_msg = T_ERROR_MSG;
06171 }
06172 nb_write = write(file, &msg, sizeof(msg));
06173 nb_read = read(file, &msg, sizeof(msg));
06174 if (nb_read == 0)
06175 {
06176 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06177 msg.type_msg = T_ERROR_MSG;
06178 }
06179 close(file);
06180
06181 (*code_err) = msg.id_error;
06182 return (unsigned int) msg.metric.int32;
06183 }
06184
06185
06192 unsigned int
06193 get_is_rx_elem_unknown(char * dev_name,
06194 unsigned int * code_err)
06195 {
06196 int file, nb_write, nb_read;
06197 struct qos_metric_net80211_msg msg;
06198
06199 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06200 msg.type_msg = T_QUERY_MSG;
06201 msg.id_error = NO_ERRORS;
06202 msg.metric_name = IS_RX_ELEM_UNKNOWN;
06203 msg.metric.int32 = 0;
06204
06205 if (dev_name)
06206 strcpy((char *) msg.dev_name, dev_name);
06207 else
06208 msg.dev_name[0] = '\0';
06209
06210 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06211 {
06212 fprintf(stderr, "Can't open: ");
06213 perror(CROSS_LAYER_DEV_NAME_PATH);
06214 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06215 msg.type_msg = T_ERROR_MSG;
06216 }
06217 nb_write = write(file, &msg, sizeof(msg));
06218 nb_read = read(file, &msg, sizeof(msg));
06219 if (nb_read == 0)
06220 {
06221 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06222 msg.type_msg = T_ERROR_MSG;
06223 }
06224 close(file);
06225
06226 (*code_err) = msg.id_error;
06227 return (unsigned int) msg.metric.int32;
06228 }
06229
06230
06237 unsigned int
06238 get_is_rx_badchan(char * dev_name,
06239 unsigned int * code_err)
06240 {
06241 int file, nb_write, nb_read;
06242 struct qos_metric_net80211_msg msg;
06243
06244 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06245 msg.type_msg = T_QUERY_MSG;
06246 msg.id_error = NO_ERRORS;
06247 msg.metric_name = IS_RX_BADCHAN;
06248 msg.metric.int32 = 0;
06249
06250 if (dev_name)
06251 strcpy((char *) msg.dev_name, dev_name);
06252 else
06253 msg.dev_name[0] = '\0';
06254
06255 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06256 {
06257 fprintf(stderr, "Can't open: ");
06258 perror(CROSS_LAYER_DEV_NAME_PATH);
06259 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06260 msg.type_msg = T_ERROR_MSG;
06261 }
06262 nb_write = write(file, &msg, sizeof(msg));
06263 nb_read = read(file, &msg, sizeof(msg));
06264 if (nb_read == 0)
06265 {
06266 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06267 msg.type_msg = T_ERROR_MSG;
06268 }
06269 close(file);
06270
06271 (*code_err) = msg.id_error;
06272 return (unsigned int) msg.metric.int32;
06273 }
06274
06275
06282 unsigned int
06283 get_is_rx_chanmismatch(char * dev_name,
06284 unsigned int * code_err)
06285 {
06286 int file, nb_write, nb_read;
06287 struct qos_metric_net80211_msg msg;
06288 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06289 msg.type_msg = T_QUERY_MSG;
06290 msg.id_error = NO_ERRORS;
06291 msg.metric_name = IS_RX_CHANMISMATCH;
06292 msg.metric.int32 = 0;
06293
06294 if (dev_name)
06295 strcpy((char *) msg.dev_name, dev_name);
06296 else
06297 msg.dev_name[0] = '\0';
06298
06299 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06300 {
06301 fprintf(stderr, "Can't open: ");
06302 perror(CROSS_LAYER_DEV_NAME_PATH);
06303 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06304 msg.type_msg = T_ERROR_MSG;
06305 }
06306 nb_write = write(file, &msg, sizeof(msg));
06307 nb_read = read(file, &msg, sizeof(msg));
06308 if (nb_read == 0)
06309 {
06310 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06311 msg.type_msg = T_ERROR_MSG;
06312 }
06313 close(file);
06314
06315 (*code_err) = msg.id_error;
06316 return (unsigned int) msg.metric.int32;
06317 }
06318
06319
06326 unsigned int
06327 get_is_rx_nodealloc(char * dev_name,
06328 unsigned int * code_err)
06329 {
06330 int file, nb_write, nb_read;
06331 struct qos_metric_net80211_msg msg;
06332
06333 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06334 msg.type_msg = T_QUERY_MSG;
06335 msg.id_error = NO_ERRORS;
06336 msg.metric_name = IS_RX_NODEALLOC;
06337 msg.metric.int32 = 0;
06338
06339 if (dev_name)
06340 strcpy((char *) msg.dev_name, dev_name);
06341 else
06342 msg.dev_name[0] = '\0';
06343
06344 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06345 {
06346 fprintf(stderr, "Can't open: ");
06347 perror(CROSS_LAYER_DEV_NAME_PATH);
06348 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06349 msg.type_msg = T_ERROR_MSG;
06350 }
06351 nb_write = write(file, &msg, sizeof(msg));
06352 nb_read = read(file, &msg, sizeof(msg));
06353 if (nb_read == 0)
06354 {
06355 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06356 msg.type_msg = T_ERROR_MSG;
06357 }
06358 close(file);
06359
06360 (*code_err) = msg.id_error;
06361 return (unsigned int) msg.metric.int32;
06362 }
06363
06364
06371 unsigned int
06372 get_is_rx_ssidmismatch(char * dev_name,
06373 unsigned int * code_err)
06374 {
06375 int file, nb_write, nb_read;
06376 struct qos_metric_net80211_msg msg;
06377
06378 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06379 msg.type_msg = T_QUERY_MSG;
06380 msg.id_error = NO_ERRORS;
06381 msg.metric_name = IS_RX_SSIDMISMATCH;
06382 msg.metric.int32 = 0;
06383
06384 if (dev_name)
06385 strcpy((char *) msg.dev_name, dev_name);
06386 else
06387 msg.dev_name[0] = '\0';
06388
06389 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06390 {
06391 fprintf(stderr, "Can't open: ");
06392 perror(CROSS_LAYER_DEV_NAME_PATH);
06393 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06394 msg.type_msg = T_ERROR_MSG;
06395 }
06396 nb_write = write(file, &msg, sizeof(msg));
06397 nb_read = read(file, &msg, sizeof(msg));
06398 if (nb_read == 0)
06399 {
06400 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06401 msg.type_msg = T_ERROR_MSG;
06402 }
06403 close(file);
06404
06405 (*code_err) = msg.id_error;
06406 return (unsigned int) msg.metric.int32;
06407 }
06408
06409
06416 unsigned int
06417 get_is_rx_auth_unsupported(char * dev_name,
06418 unsigned int * code_err)
06419 {
06420 int file, nb_write, nb_read;
06421 struct qos_metric_net80211_msg msg;
06422
06423 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06424 msg.type_msg = T_QUERY_MSG;
06425 msg.id_error = NO_ERRORS;
06426 msg.metric_name = IS_RX_AUTH_UNSUPPORTED;
06427 msg.metric.int32 = 0;
06428
06429 if (dev_name)
06430 strcpy((char *) msg.dev_name, dev_name);
06431 else
06432 msg.dev_name[0] = '\0';
06433
06434 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06435 {
06436 fprintf(stderr, "Can't open: ");
06437 perror(CROSS_LAYER_DEV_NAME_PATH);
06438 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06439 msg.type_msg = T_ERROR_MSG;
06440 }
06441 nb_write = write(file, &msg, sizeof(msg));
06442 nb_read = read(file, &msg, sizeof(msg));
06443 if (nb_read == 0)
06444 {
06445 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06446 msg.type_msg = T_ERROR_MSG;
06447 }
06448 close(file);
06449
06450 (*code_err) = msg.id_error;
06451 return (unsigned int) msg.metric.int32;
06452 }
06453
06454
06461 unsigned int
06462 get_is_rx_auth_fail(char * dev_name,
06463 unsigned int * code_err)
06464 {
06465 int file, nb_write, nb_read;
06466 struct qos_metric_net80211_msg msg;
06467
06468 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06469 msg.type_msg = T_QUERY_MSG;
06470 msg.id_error = NO_ERRORS;
06471 msg.metric_name = IS_RX_AUTH_FAIL;
06472 msg.metric.int32 = 0;
06473
06474 if (dev_name)
06475 strcpy((char *) msg.dev_name, dev_name);
06476 else
06477 msg.dev_name[0] = '\0';
06478
06479 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06480 {
06481 fprintf(stderr, "Can't open: ");
06482 perror(CROSS_LAYER_DEV_NAME_PATH);
06483 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06484 msg.type_msg = T_ERROR_MSG;
06485 }
06486 nb_write = write(file, &msg, sizeof(msg));
06487 nb_read = read(file, &msg, sizeof(msg));
06488 if (nb_read == 0)
06489 {
06490 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06491 msg.type_msg = T_ERROR_MSG;
06492 }
06493 close(file);
06494
06495 (*code_err) = msg.id_error;
06496 return (unsigned int) msg.metric.int32;
06497 }
06498
06499
06506 unsigned int
06507 get_is_rx_auth_countermeasures(char * dev_name,
06508 unsigned int * code_err)
06509 {
06510 int file, nb_write, nb_read;
06511 struct qos_metric_net80211_msg msg;
06512
06513 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06514 msg.type_msg = T_QUERY_MSG;
06515 msg.id_error = NO_ERRORS;
06516 msg.metric_name = IS_RX_AUTH_COUNTERMEASURES;
06517 msg.metric.int32 = 0;
06518
06519 if (dev_name)
06520 strcpy((char *) msg.dev_name, dev_name);
06521 else
06522 msg.dev_name[0] = '\0';
06523
06524 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06525 {
06526 fprintf(stderr, "Can't open: ");
06527 perror(CROSS_LAYER_DEV_NAME_PATH);
06528 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06529 msg.type_msg = T_ERROR_MSG;
06530 }
06531 nb_write = write(file, &msg, sizeof(msg));
06532 nb_read = read(file, &msg, sizeof(msg));
06533 if (nb_read == 0)
06534 {
06535 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06536 msg.type_msg = T_ERROR_MSG;
06537 }
06538 close(file);
06539
06540 (*code_err) = msg.id_error;
06541 return (unsigned int) msg.metric.int32;
06542 }
06543
06544
06551 unsigned int
06552 get_is_rx_assoc_bss(char * dev_name,
06553 unsigned int * code_err)
06554 {
06555 int file, nb_write, nb_read;
06556 struct qos_metric_net80211_msg msg;
06557
06558 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06559 msg.type_msg = T_QUERY_MSG;
06560 msg.id_error = NO_ERRORS;
06561 msg.metric_name = IS_RX_ASSOC_BSS;
06562 msg.metric.int32 = 0;
06563
06564 if (dev_name)
06565 strcpy((char *) msg.dev_name, dev_name);
06566 else
06567 msg.dev_name[0] = '\0';
06568
06569 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06570 {
06571 fprintf(stderr, "Can't open: ");
06572 perror(CROSS_LAYER_DEV_NAME_PATH);
06573 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06574 msg.type_msg = T_ERROR_MSG;
06575 }
06576 nb_write = write(file, &msg, sizeof(msg));
06577 nb_read = read(file, &msg, sizeof(msg));
06578 if (nb_read == 0)
06579 {
06580 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06581 msg.type_msg = T_ERROR_MSG;
06582 }
06583 close(file);
06584
06585 (*code_err) = msg.id_error;
06586 return (unsigned int) msg.metric.int32;
06587 }
06588
06589
06596 unsigned int
06597 get_is_rx_assoc_notauth(char * dev_name,
06598 unsigned int * code_err)
06599 {
06600 int file, nb_write, nb_read;
06601 struct qos_metric_net80211_msg msg;
06602
06603 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06604 msg.type_msg = T_QUERY_MSG;
06605 msg.id_error = NO_ERRORS;
06606 msg.metric_name = IS_RX_ASSOC_NOTAUTH;
06607 msg.metric.int32 = 0;
06608
06609 if (dev_name)
06610 strcpy((char *) msg.dev_name, dev_name);
06611 else
06612 msg.dev_name[0] = '\0';
06613
06614 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06615 {
06616 fprintf(stderr, "Can't open: ");
06617 perror(CROSS_LAYER_DEV_NAME_PATH);
06618 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06619 msg.type_msg = T_ERROR_MSG;
06620 }
06621 nb_write = write(file, &msg, sizeof(msg));
06622 nb_read = read(file, &msg, sizeof(msg));
06623 if (nb_read == 0)
06624 {
06625 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06626 msg.type_msg = T_ERROR_MSG;
06627 }
06628 close(file);
06629
06630 (*code_err) = msg.id_error;
06631 return (unsigned int) msg.metric.int32;
06632 }
06633
06634
06641 unsigned int
06642 get_is_rx_assoc_capmismatch(char * dev_name,
06643 unsigned int * code_err)
06644 {
06645 int file, nb_write, nb_read;
06646 struct qos_metric_net80211_msg msg;
06647
06648 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06649 msg.type_msg = T_QUERY_MSG;
06650 msg.id_error = NO_ERRORS;
06651 msg.metric_name = IS_RX_ASSOC_CAPMISMATCH;
06652 msg.metric.int32 = 0;
06653
06654 if (dev_name)
06655 strcpy((char *) msg.dev_name, dev_name);
06656 else
06657 msg.dev_name[0] = '\0';
06658
06659 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06660 {
06661 fprintf(stderr, "Can't open: ");
06662 perror(CROSS_LAYER_DEV_NAME_PATH);
06663 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06664 msg.type_msg = T_ERROR_MSG;
06665 }
06666 nb_write = write(file, &msg, sizeof(msg));
06667 nb_read = read(file, &msg, sizeof(msg));
06668 if (nb_read == 0)
06669 {
06670 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06671 msg.type_msg = T_ERROR_MSG;
06672 }
06673 close(file);
06674
06675 (*code_err) = msg.id_error;
06676 return (unsigned int) msg.metric.int32;
06677 }
06678
06679
06686 unsigned int
06687 get_is_rx_assoc_norate(char * dev_name,
06688 unsigned int * code_err)
06689 {
06690 int file, nb_write, nb_read;
06691 struct qos_metric_net80211_msg msg;
06692
06693 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06694 msg.type_msg = T_QUERY_MSG;
06695 msg.id_error = NO_ERRORS;
06696 msg.metric_name = IS_RX_ASSOC_NORATE;
06697 msg.metric.int32 = 0;
06698
06699 if (dev_name)
06700 strcpy((char *) msg.dev_name, dev_name);
06701 else
06702 msg.dev_name[0] = '\0';
06703
06704 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06705 {
06706 fprintf(stderr, "Can't open: ");
06707 perror(CROSS_LAYER_DEV_NAME_PATH);
06708 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06709 msg.type_msg = T_ERROR_MSG;
06710 }
06711 nb_write = write(file, &msg, sizeof(msg));
06712 nb_read = read(file, &msg, sizeof(msg));
06713 if (nb_read == 0)
06714 {
06715 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06716 msg.type_msg = T_ERROR_MSG;
06717 }
06718 close(file);
06719
06720 (*code_err) = msg.id_error;
06721 return (unsigned int) msg.metric.int32;
06722 }
06723
06724
06731 unsigned int
06732 get_is_rx_assoc_badwpaie(char * dev_name,
06733 unsigned int * code_err)
06734 {
06735 int file, nb_write, nb_read;
06736 struct qos_metric_net80211_msg msg;
06737
06738 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06739 msg.type_msg = T_QUERY_MSG;
06740 msg.id_error = NO_ERRORS;
06741 msg.metric_name = IS_RX_ASSOC_BADWPAIE;
06742 msg.metric.int32 = 0;
06743
06744 if (dev_name)
06745 strcpy((char *) msg.dev_name, dev_name);
06746 else
06747 msg.dev_name[0] = '\0';
06748
06749 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06750 {
06751 fprintf(stderr, "Can't open: ");
06752 perror(CROSS_LAYER_DEV_NAME_PATH);
06753 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06754 msg.type_msg = T_ERROR_MSG;
06755 }
06756 nb_write = write(file, &msg, sizeof(msg));
06757 nb_read = read(file, &msg, sizeof(msg));
06758 if (nb_read == 0)
06759 {
06760 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06761 msg.type_msg = T_ERROR_MSG;
06762 }
06763 close(file);
06764
06765 (*code_err) = msg.id_error;
06766 return (unsigned int) msg.metric.int32;
06767 }
06768
06769
06776 unsigned int
06777 get_is_rx_deauth(char * dev_name,
06778 unsigned int * code_err)
06779 {
06780 int file, nb_write, nb_read;
06781 struct qos_metric_net80211_msg msg;
06782
06783 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06784 msg.type_msg = T_QUERY_MSG;
06785 msg.id_error = NO_ERRORS;
06786 msg.metric_name = IS_RX_DEAUTH;
06787 msg.metric.int32 = 0;
06788
06789 if (dev_name)
06790 strcpy((char *) msg.dev_name, dev_name);
06791 else
06792 msg.dev_name[0] = '\0';
06793
06794 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06795 {
06796 fprintf(stderr, "Can't open: ");
06797 perror(CROSS_LAYER_DEV_NAME_PATH);
06798 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06799 msg.type_msg = T_ERROR_MSG;
06800 }
06801 nb_write = write(file, &msg, sizeof(msg));
06802 nb_read = read(file, &msg, sizeof(msg));
06803 if (nb_read == 0)
06804 {
06805 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06806 msg.type_msg = T_ERROR_MSG;
06807 }
06808 close(file);
06809
06810 (*code_err) = msg.id_error;
06811 return (unsigned int) msg.metric.int32;
06812 }
06813
06814
06821 unsigned int
06822 get_is_rx_disassoc(char * dev_name,
06823 unsigned int * code_err)
06824 {
06825 int file, nb_write, nb_read;
06826 struct qos_metric_net80211_msg msg;
06827
06828 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06829 msg.type_msg = T_QUERY_MSG;
06830 msg.id_error = NO_ERRORS;
06831 msg.metric_name = IS_RX_DISASSOC;
06832 msg.metric.int32 = 0;
06833
06834 if (dev_name)
06835 strcpy((char *) msg.dev_name, dev_name);
06836 else
06837 msg.dev_name[0] = '\0';
06838
06839 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06840 {
06841 fprintf(stderr, "Can't open: ");
06842 perror(CROSS_LAYER_DEV_NAME_PATH);
06843 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06844 msg.type_msg = T_ERROR_MSG;
06845 }
06846 nb_write = write(file, &msg, sizeof(msg));
06847 nb_read = read(file, &msg, sizeof(msg));
06848 if (nb_read == 0)
06849 {
06850 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06851 msg.type_msg = T_ERROR_MSG;
06852 }
06853 close(file);
06854
06855 (*code_err) = msg.id_error;
06856 return (unsigned int) msg.metric.int32;
06857 }
06858
06859
06866 unsigned int
06867 get_is_rx_badsubtype(char * dev_name,
06868 unsigned int * code_err)
06869 {
06870 int file, nb_write, nb_read;
06871 struct qos_metric_net80211_msg msg;
06872
06873 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06874 msg.type_msg = T_QUERY_MSG;
06875 msg.id_error = NO_ERRORS;
06876 msg.metric_name = IS_RX_BADSUBTYPE;
06877 msg.metric.int32 = 0;
06878
06879 if (dev_name)
06880 strcpy((char *) msg.dev_name, dev_name);
06881 else
06882 msg.dev_name[0] = '\0';
06883
06884 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06885 {
06886 fprintf(stderr, "Can't open: ");
06887 perror(CROSS_LAYER_DEV_NAME_PATH);
06888 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06889 msg.type_msg = T_ERROR_MSG;
06890 }
06891 nb_write = write(file, &msg, sizeof(msg));
06892 nb_read = read(file, &msg, sizeof(msg));
06893 if (nb_read == 0)
06894 {
06895 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06896 msg.type_msg = T_ERROR_MSG;
06897 }
06898 close(file);
06899
06900 (*code_err) = msg.id_error;
06901 return (unsigned int) msg.metric.int32;
06902 }
06903
06904
06911 unsigned int
06912 get_is_rx_nobuf(char * dev_name,
06913 unsigned int * code_err)
06914 {
06915 int file, nb_write, nb_read;
06916 struct qos_metric_net80211_msg msg;
06917
06918 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06919 msg.type_msg = T_QUERY_MSG;
06920 msg.id_error = NO_ERRORS;
06921 msg.metric_name = IS_RX_NOBUF;
06922 msg.metric.int32 = 0;
06923
06924 if (dev_name)
06925 strcpy((char *) msg.dev_name, dev_name);
06926 else
06927 msg.dev_name[0] = '\0';
06928
06929 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06930 {
06931 fprintf(stderr, "Can't open: ");
06932 perror(CROSS_LAYER_DEV_NAME_PATH);
06933 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06934 msg.type_msg = T_ERROR_MSG;
06935 }
06936 nb_write = write(file, &msg, sizeof(msg));
06937 nb_read = read(file, &msg, sizeof(msg));
06938 if (nb_read == 0)
06939 {
06940 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06941 msg.type_msg = T_ERROR_MSG;
06942 }
06943 close(file);
06944
06945 (*code_err) = msg.id_error;
06946 return (unsigned int) msg.metric.int32;
06947 }
06948
06949
06956 unsigned int
06957 get_is_rx_decryptcrc(char * dev_name,
06958 unsigned int * code_err)
06959 {
06960 int file, nb_write, nb_read;
06961 struct qos_metric_net80211_msg msg;
06962
06963 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
06964 msg.type_msg = T_QUERY_MSG;
06965 msg.id_error = NO_ERRORS;
06966 msg.metric_name = IS_RX_DECRYPTCRC;
06967 msg.metric.int32 = 0;
06968
06969 if (dev_name)
06970 strcpy((char *) msg.dev_name, dev_name);
06971 else
06972 msg.dev_name[0] = '\0';
06973
06974 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
06975 {
06976 fprintf(stderr, "Can't open: ");
06977 perror(CROSS_LAYER_DEV_NAME_PATH);
06978 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
06979 msg.type_msg = T_ERROR_MSG;
06980 }
06981 nb_write = write(file, &msg, sizeof(msg));
06982 nb_read = read(file, &msg, sizeof(msg));
06983 if (nb_read == 0)
06984 {
06985 msg.id_error = COULD_NOT_READ_UNIX_DEV;
06986 msg.type_msg = T_ERROR_MSG;
06987 }
06988 close(file);
06989
06990 (*code_err) = msg.id_error;
06991 return (unsigned int) msg.metric.int32;
06992 }
06993
06994
07001 unsigned int
07002 get_is_rx_ahdemo_mgt(char * dev_name,
07003 unsigned int * code_err)
07004 {
07005 int file, nb_write, nb_read;
07006 struct qos_metric_net80211_msg msg;
07007
07008 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07009 msg.type_msg = T_QUERY_MSG;
07010 msg.id_error = NO_ERRORS;
07011 msg.metric_name = IS_RX_AHDEMO_MGT;
07012 msg.metric.int32 = 0;
07013
07014 if (dev_name)
07015 strcpy((char *) msg.dev_name, dev_name);
07016 else
07017 msg.dev_name[0] = '\0';
07018
07019 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07020 {
07021 fprintf(stderr, "Can't open: ");
07022 perror(CROSS_LAYER_DEV_NAME_PATH);
07023 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07024 msg.type_msg = T_ERROR_MSG;
07025 }
07026 nb_write = write(file, &msg, sizeof(msg));
07027 nb_read = read(file, &msg, sizeof(msg));
07028 if (nb_read == 0)
07029 {
07030 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07031 msg.type_msg = T_ERROR_MSG;
07032 }
07033 close(file);
07034
07035 (*code_err) = msg.id_error;
07036 return (unsigned int) msg.metric.int32;
07037 }
07038
07039
07046 unsigned int
07047 get_is_rx_bad_auth(char * dev_name,
07048 unsigned int * code_err)
07049 {
07050 int file, nb_write, nb_read;
07051 struct qos_metric_net80211_msg msg;
07052
07053 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07054 msg.type_msg = T_QUERY_MSG;
07055 msg.id_error = NO_ERRORS;
07056 msg.metric_name = IS_RX_BAD_AUTH;
07057 msg.metric.int32 = 0;
07058
07059 if (dev_name)
07060 strcpy((char *) msg.dev_name, dev_name);
07061 else
07062 msg.dev_name[0] = '\0';
07063
07064 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07065 {
07066 fprintf(stderr, "Can't open: ");
07067 perror(CROSS_LAYER_DEV_NAME_PATH);
07068 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07069 msg.type_msg = T_ERROR_MSG;
07070 }
07071 nb_write = write(file, &msg, sizeof(msg));
07072 nb_read = read(file, &msg, sizeof(msg));
07073 if (nb_read == 0)
07074 {
07075 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07076 msg.type_msg = T_ERROR_MSG;
07077 }
07078 close(file);
07079
07080 (*code_err) = msg.id_error;
07081 return (unsigned int) msg.metric.int32;
07082 }
07083
07084
07091 unsigned int
07092 get_is_rx_unauth(char * dev_name,
07093 unsigned int * code_err)
07094 {
07095 int file, nb_write, nb_read;
07096 struct qos_metric_net80211_msg msg;
07097
07098 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07099 msg.type_msg = T_QUERY_MSG;
07100 msg.id_error = NO_ERRORS;
07101 msg.metric_name = IS_RX_UNAUTH;
07102 msg.metric.int32 = 0;
07103
07104 if (dev_name)
07105 strcpy((char *) msg.dev_name, dev_name);
07106 else
07107 msg.dev_name[0] = '\0';
07108
07109 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07110 {
07111 fprintf(stderr, "Can't open: ");
07112 perror(CROSS_LAYER_DEV_NAME_PATH);
07113 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07114 msg.type_msg = T_ERROR_MSG;
07115 }
07116 nb_write = write(file, &msg, sizeof(msg));
07117 nb_read = read(file, &msg, sizeof(msg));
07118 if (nb_read == 0)
07119 {
07120 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07121 msg.type_msg = T_ERROR_MSG;
07122 }
07123 close(file);
07124
07125 (*code_err) = msg.id_error;
07126 return (unsigned int) msg.metric.int32;
07127 }
07128
07129
07136 unsigned int
07137 get_is_rx_badkeyid(char * dev_name,
07138 unsigned int * code_err)
07139 {
07140 int file, nb_write, nb_read;
07141 struct qos_metric_net80211_msg msg;
07142
07143 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07144 msg.type_msg = T_QUERY_MSG;
07145 msg.id_error = NO_ERRORS;
07146 msg.metric_name = IS_RX_BADKEYID;
07147 msg.metric.int32 = 0;
07148
07149 if (dev_name)
07150 strcpy((char *) msg.dev_name, dev_name);
07151 else
07152 msg.dev_name[0] = '\0';
07153
07154 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07155 {
07156 fprintf(stderr, "Can't open: ");
07157 perror(CROSS_LAYER_DEV_NAME_PATH);
07158 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07159 msg.type_msg = T_ERROR_MSG;
07160 }
07161 nb_write = write(file, &msg, sizeof(msg));
07162 nb_read = read(file, &msg, sizeof(msg));
07163 if (nb_read == 0)
07164 {
07165 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07166 msg.type_msg = T_ERROR_MSG;
07167 }
07168 close(file);
07169
07170 (*code_err) = msg.id_error;
07171 return (unsigned int) msg.metric.int32;
07172 }
07173
07174
07181 unsigned int
07182 get_is_rx_ccmpreplay(char * dev_name,
07183 unsigned int * code_err)
07184 {
07185 int file, nb_write, nb_read;
07186 struct qos_metric_net80211_msg msg;
07187
07188 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07189 msg.type_msg = T_QUERY_MSG;
07190 msg.id_error = NO_ERRORS;
07191 msg.metric_name = IS_RX_CCMPREPLAY;
07192 msg.metric.int32 = 0;
07193
07194 if (dev_name)
07195 strcpy((char *) msg.dev_name, dev_name);
07196 else
07197 msg.dev_name[0] = '\0';
07198
07199 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07200 {
07201 fprintf(stderr, "Can't open: ");
07202 perror(CROSS_LAYER_DEV_NAME_PATH);
07203 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07204 msg.type_msg = T_ERROR_MSG;
07205 }
07206 nb_write = write(file, &msg, sizeof(msg));
07207 nb_read = read(file, &msg, sizeof(msg));
07208 if (nb_read == 0)
07209 {
07210 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07211 msg.type_msg = T_ERROR_MSG;
07212 }
07213 close(file);
07214
07215 (*code_err) = msg.id_error;
07216 return (unsigned int) msg.metric.int32;
07217 }
07218
07219
07226 unsigned int
07227 get_is_rx_ccmpformat(char * dev_name,
07228 unsigned int * code_err)
07229 {
07230 int file, nb_write, nb_read;
07231 struct qos_metric_net80211_msg msg;
07232
07233 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07234 msg.type_msg = T_QUERY_MSG;
07235 msg.id_error = NO_ERRORS;
07236 msg.metric_name = IS_RX_CCMPFORMAT;
07237 msg.metric.int32 = 0;
07238
07239 if (dev_name)
07240 strcpy((char *) msg.dev_name, dev_name);
07241 else
07242 msg.dev_name[0] = '\0';
07243
07244 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07245 {
07246 fprintf(stderr, "Can't open: ");
07247 perror(CROSS_LAYER_DEV_NAME_PATH);
07248 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07249 msg.type_msg = T_ERROR_MSG;
07250 }
07251 nb_write = write(file, &msg, sizeof(msg));
07252 nb_read = read(file, &msg, sizeof(msg));
07253 if (nb_read == 0)
07254 {
07255 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07256 msg.type_msg = T_ERROR_MSG;
07257 }
07258 close(file);
07259
07260 (*code_err) = msg.id_error;
07261 return (unsigned int) msg.metric.int32;
07262 }
07263
07264
07271 unsigned int
07272 get_is_rx_ccmpmic(char * dev_name,
07273 unsigned int * code_err)
07274 {
07275 int file, nb_write, nb_read;
07276 struct qos_metric_net80211_msg msg;
07277
07278 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07279 msg.type_msg = T_QUERY_MSG;
07280 msg.id_error = NO_ERRORS;
07281 msg.metric_name = IS_RX_CCMPMIC;
07282 msg.metric.int32 = 0;
07283
07284 if (dev_name)
07285 strcpy((char *) msg.dev_name, dev_name);
07286 else
07287 msg.dev_name[0] = '\0';
07288
07289 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07290 {
07291 fprintf(stderr, "Can't open: ");
07292 perror(CROSS_LAYER_DEV_NAME_PATH);
07293 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07294 msg.type_msg = T_ERROR_MSG;
07295 }
07296 nb_write = write(file, &msg, sizeof(msg));
07297 nb_read = read(file, &msg, sizeof(msg));
07298 if (nb_read == 0)
07299 {
07300 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07301 msg.type_msg = T_ERROR_MSG;
07302 }
07303 close(file);
07304
07305 (*code_err) = msg.id_error;
07306 return (unsigned int) msg.metric.int32;
07307 }
07308
07309
07316 unsigned int
07317 get_is_rx_tkipreplay(char * dev_name,
07318 unsigned int * code_err)
07319 {
07320 int file, nb_write, nb_read;
07321 struct qos_metric_net80211_msg msg;
07322
07323 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07324 msg.type_msg = T_QUERY_MSG;
07325 msg.id_error = NO_ERRORS;
07326 msg.metric_name = IS_RX_TKIPREPLAY;
07327 msg.metric.int32 = 0;
07328
07329 if (dev_name)
07330 strcpy((char *) msg.dev_name, dev_name);
07331 else
07332 msg.dev_name[0] = '\0';
07333
07334 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07335 {
07336 fprintf(stderr, "Can't open: ");
07337 perror(CROSS_LAYER_DEV_NAME_PATH);
07338 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07339 msg.type_msg = T_ERROR_MSG;
07340 }
07341 nb_write = write(file, &msg, sizeof(msg));
07342 nb_read = read(file, &msg, sizeof(msg));
07343 if (nb_read == 0)
07344 {
07345 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07346 msg.type_msg = T_ERROR_MSG;
07347 }
07348 close(file);
07349
07350 (*code_err) = msg.id_error;
07351 return (unsigned int) msg.metric.int32;
07352 }
07353
07354
07361 unsigned int
07362 get_is_rx_tkipformat(char * dev_name,
07363 unsigned int * code_err)
07364 {
07365 int file, nb_write, nb_read;
07366 struct qos_metric_net80211_msg msg;
07367
07368 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07369 msg.type_msg = T_QUERY_MSG;
07370 msg.id_error = NO_ERRORS;
07371 msg.metric_name = IS_RX_TKIPFORMAT;
07372 msg.metric.int32 = 0;
07373
07374 if (dev_name)
07375 strcpy((char *) msg.dev_name, dev_name);
07376 else
07377 msg.dev_name[0] = '\0';
07378
07379 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07380 {
07381 fprintf(stderr, "Can't open: ");
07382 perror(CROSS_LAYER_DEV_NAME_PATH);
07383 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07384 msg.type_msg = T_ERROR_MSG;
07385 }
07386 nb_write = write(file, &msg, sizeof(msg));
07387 nb_read = read(file, &msg, sizeof(msg));
07388 if (nb_read == 0)
07389 {
07390 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07391 msg.type_msg = T_ERROR_MSG;
07392 }
07393 close(file);
07394
07395 (*code_err) = msg.id_error;
07396 return (unsigned int) msg.metric.int32;
07397 }
07398
07399
07406 unsigned int
07407 get_is_rx_tkipmic(char * dev_name,
07408 unsigned int * code_err)
07409 {
07410 int file, nb_write, nb_read;
07411 struct qos_metric_net80211_msg msg;
07412
07413 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07414 msg.type_msg = T_QUERY_MSG;
07415 msg.id_error = NO_ERRORS;
07416 msg.metric_name = IS_RX_TKIPMIC;
07417 msg.metric.int32 = 0;
07418
07419 if (dev_name)
07420 strcpy((char *) msg.dev_name, dev_name);
07421 else
07422 msg.dev_name[0] = '\0';
07423
07424 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07425 {
07426 fprintf(stderr, "Can't open: ");
07427 perror(CROSS_LAYER_DEV_NAME_PATH);
07428 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07429 msg.type_msg = T_ERROR_MSG;
07430 }
07431 nb_write = write(file, &msg, sizeof(msg));
07432 nb_read = read(file, &msg, sizeof(msg));
07433 if (nb_read == 0)
07434 {
07435 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07436 msg.type_msg = T_ERROR_MSG;
07437 }
07438 close(file);
07439
07440 (*code_err) = msg.id_error;
07441 return (unsigned int) msg.metric.int32;
07442 }
07443
07444
07451 unsigned int
07452 get_is_rx_tkipicv(char * dev_name,
07453 unsigned int * code_err)
07454 {
07455 int file, nb_write, nb_read;
07456 struct qos_metric_net80211_msg msg;
07457
07458 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07459 msg.type_msg = T_QUERY_MSG;
07460 msg.id_error = NO_ERRORS;
07461 msg.metric_name = IS_RX_TKIPICV;
07462 msg.metric.int32 = 0;
07463
07464 if (dev_name)
07465 strcpy((char *) msg.dev_name, dev_name);
07466 else
07467 msg.dev_name[0] = '\0';
07468
07469 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07470 {
07471 fprintf(stderr, "Can't open: ");
07472 perror(CROSS_LAYER_DEV_NAME_PATH);
07473 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07474 msg.type_msg = T_ERROR_MSG;
07475 }
07476 nb_write = write(file, &msg, sizeof(msg));
07477 nb_read = read(file, &msg, sizeof(msg));
07478 if (nb_read == 0)
07479 {
07480 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07481 msg.type_msg = T_ERROR_MSG;
07482 }
07483 close(file);
07484
07485 (*code_err) = msg.id_error;
07486 return (unsigned int) msg.metric.int32;
07487 }
07488
07489
07496 unsigned int
07497 get_is_rx_badcipher(char * dev_name,
07498 unsigned int * code_err)
07499 {
07500 int file, nb_write, nb_read;
07501 struct qos_metric_net80211_msg msg;
07502
07503 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07504 msg.type_msg = T_QUERY_MSG;
07505 msg.id_error = NO_ERRORS;
07506 msg.metric_name = IS_RX_BADCIPHER;
07507 msg.metric.int32 = 0;
07508
07509 if (dev_name)
07510 strcpy((char *) msg.dev_name, dev_name);
07511 else
07512 msg.dev_name[0] = '\0';
07513
07514 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07515 {
07516 fprintf(stderr, "Can't open: ");
07517 perror(CROSS_LAYER_DEV_NAME_PATH);
07518 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07519 msg.type_msg = T_ERROR_MSG;
07520 }
07521 nb_write = write(file, &msg, sizeof(msg));
07522 nb_read = read(file, &msg, sizeof(msg));
07523 if (nb_read == 0)
07524 {
07525 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07526 msg.type_msg = T_ERROR_MSG;
07527 }
07528 close(file);
07529
07530 (*code_err) = msg.id_error;
07531 return (unsigned int) msg.metric.int32;
07532 }
07533
07534
07541 unsigned int
07542 get_is_rx_nocipherctx(char * dev_name,
07543 unsigned int * code_err)
07544 {
07545 int file, nb_write, nb_read;
07546 struct qos_metric_net80211_msg msg;
07547
07548 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07549 msg.type_msg = T_QUERY_MSG;
07550 msg.id_error = NO_ERRORS;
07551 msg.metric_name = IS_RX_NOCIPHERCTX;
07552 msg.metric.int32 = 0;
07553
07554 if (dev_name)
07555 strcpy((char *) msg.dev_name, dev_name);
07556 else
07557 msg.dev_name[0] = '\0';
07558
07559 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07560 {
07561 fprintf(stderr, "Can't open: ");
07562 perror(CROSS_LAYER_DEV_NAME_PATH);
07563 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07564 msg.type_msg = T_ERROR_MSG;
07565 }
07566 nb_write = write(file, &msg, sizeof(msg));
07567 nb_read = read(file, &msg, sizeof(msg));
07568 if (nb_read == 0)
07569 {
07570 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07571 msg.type_msg = T_ERROR_MSG;
07572 }
07573 close(file);
07574
07575 (*code_err) = msg.id_error;
07576 return (unsigned int) msg.metric.int32;
07577 }
07578
07579
07586 unsigned int
07587 get_is_rx_acl(char * dev_name,
07588 unsigned int * code_err)
07589 {
07590 int file, nb_write, nb_read;
07591 struct qos_metric_net80211_msg msg;
07592
07593 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07594 msg.type_msg = T_QUERY_MSG;
07595 msg.id_error = NO_ERRORS;
07596 msg.metric_name = IS_RX_ACL;
07597 msg.metric.int32 = 0;
07598
07599 if (dev_name)
07600 strcpy((char *) msg.dev_name, dev_name);
07601 else
07602 msg.dev_name[0] = '\0';
07603
07604 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07605 {
07606 fprintf(stderr, "Can't open: ");
07607 perror(CROSS_LAYER_DEV_NAME_PATH);
07608 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07609 msg.type_msg = T_ERROR_MSG;
07610 }
07611 nb_write = write(file, &msg, sizeof(msg));
07612 nb_read = read(file, &msg, sizeof(msg));
07613 if (nb_read == 0)
07614 {
07615 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07616 msg.type_msg = T_ERROR_MSG;
07617 }
07618 close(file);
07619
07620 (*code_err) = msg.id_error;
07621 return (unsigned int) msg.metric.int32;
07622 }
07623
07624
07631 unsigned int
07632 get_is_tx_nobuf(char * dev_name,
07633 unsigned int * code_err)
07634 {
07635 int file, nb_write, nb_read;
07636 struct qos_metric_net80211_msg msg;
07637
07638 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07639 msg.type_msg = T_QUERY_MSG;
07640 msg.id_error = NO_ERRORS;
07641 msg.metric_name = IS_TX_NOBUF;
07642 msg.metric.int32 = 0;
07643
07644 if (dev_name)
07645 strcpy((char *) msg.dev_name, dev_name);
07646 else
07647 msg.dev_name[0] = '\0';
07648
07649 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07650 {
07651 fprintf(stderr, "Can't open: ");
07652 perror(CROSS_LAYER_DEV_NAME_PATH);
07653 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07654 msg.type_msg = T_ERROR_MSG;
07655 }
07656 nb_write = write(file, &msg, sizeof(msg));
07657 nb_read = read(file, &msg, sizeof(msg));
07658 if (nb_read == 0)
07659 {
07660 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07661 msg.type_msg = T_ERROR_MSG;
07662 }
07663 close(file);
07664
07665 (*code_err) = msg.id_error;
07666 return (unsigned int) msg.metric.int32;
07667 }
07668
07669
07676 unsigned int
07677 get_is_tx_nonode(char * dev_name,
07678 unsigned int * code_err)
07679 {
07680 int file, nb_write, nb_read;
07681 struct qos_metric_net80211_msg msg;
07682
07683 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07684 msg.type_msg = T_QUERY_MSG;
07685 msg.id_error = NO_ERRORS;
07686 msg.metric_name = IS_TX_NONODE;
07687 msg.metric.int32 = 0;
07688
07689 if (dev_name)
07690 strcpy((char *) msg.dev_name, dev_name);
07691 else
07692 msg.dev_name[0] = '\0';
07693
07694 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07695 {
07696 fprintf(stderr, "Can't open: ");
07697 perror(CROSS_LAYER_DEV_NAME_PATH);
07698 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07699 msg.type_msg = T_ERROR_MSG;
07700 }
07701 nb_write = write(file, &msg, sizeof(msg));
07702 nb_read = read(file, &msg, sizeof(msg));
07703 if (nb_read == 0)
07704 {
07705 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07706 msg.type_msg = T_ERROR_MSG;
07707 }
07708 close(file);
07709
07710 (*code_err) = msg.id_error;
07711 return (unsigned int) msg.metric.int32;
07712 }
07713
07714
07721 unsigned int
07722 get_is_tx_unknownmgt(char * dev_name,
07723 unsigned int * code_err)
07724 {
07725 int file, nb_write, nb_read;
07726 struct qos_metric_net80211_msg msg;
07727
07728 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07729 msg.type_msg = T_QUERY_MSG;
07730 msg.id_error = NO_ERRORS;
07731 msg.metric_name = IS_TX_UNKNOWNMGT;
07732 msg.metric.int32 = 0;
07733
07734 if (dev_name)
07735 strcpy((char *) msg.dev_name, dev_name);
07736 else
07737 msg.dev_name[0] = '\0';
07738
07739 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07740 {
07741 fprintf(stderr, "Can't open: ");
07742 perror(CROSS_LAYER_DEV_NAME_PATH);
07743 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07744 msg.type_msg = T_ERROR_MSG;
07745 }
07746 nb_write = write(file, &msg, sizeof(msg));
07747 nb_read = read(file, &msg, sizeof(msg));
07748 if (nb_read == 0)
07749 {
07750 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07751 msg.type_msg = T_ERROR_MSG;
07752 }
07753 close(file);
07754
07755 (*code_err) = msg.id_error;
07756 return (unsigned int) msg.metric.int32;
07757 }
07758
07759
07766 unsigned int
07767 get_is_tx_badcipher(char * dev_name,
07768 unsigned int * code_err)
07769 {
07770 int file, nb_write, nb_read;
07771 struct qos_metric_net80211_msg msg;
07772
07773 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07774 msg.type_msg = T_QUERY_MSG;
07775 msg.id_error = NO_ERRORS;
07776 msg.metric_name = IS_TX_BADCIPHER;
07777 msg.metric.int32 = 0;
07778
07779 if (dev_name)
07780 strcpy((char *) msg.dev_name, dev_name);
07781 else
07782 msg.dev_name[0] = '\0';
07783
07784 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07785 {
07786 fprintf(stderr, "Can't open: ");
07787 perror(CROSS_LAYER_DEV_NAME_PATH);
07788 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07789 msg.type_msg = T_ERROR_MSG;
07790 }
07791 nb_write = write(file, &msg, sizeof(msg));
07792 nb_read = read(file, &msg, sizeof(msg));
07793 if (nb_read == 0)
07794 {
07795 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07796 msg.type_msg = T_ERROR_MSG;
07797 }
07798 close(file);
07799
07800 (*code_err) = msg.id_error;
07801 return (unsigned int) msg.metric.int32;
07802 }
07803
07804
07811 unsigned int
07812 get_is_tx_nodefkey(char * dev_name,
07813 unsigned int * code_err)
07814 {
07815 int file, nb_write, nb_read;
07816 struct qos_metric_net80211_msg msg;
07817
07818 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07819 msg.type_msg = T_QUERY_MSG;
07820 msg.id_error = NO_ERRORS;
07821 msg.metric_name = IS_TX_NODEFKEY;
07822 msg.metric.int32 = 0;
07823
07824 if (dev_name)
07825 strcpy((char *) msg.dev_name, dev_name);
07826 else
07827 msg.dev_name[0] = '\0';
07828
07829 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07830 {
07831 fprintf(stderr, "Can't open: ");
07832 perror(CROSS_LAYER_DEV_NAME_PATH);
07833 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07834 msg.type_msg = T_ERROR_MSG;
07835 }
07836 nb_write = write(file, &msg, sizeof(msg));
07837 nb_read = read(file, &msg, sizeof(msg));
07838 if (nb_read == 0)
07839 {
07840 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07841 msg.type_msg = T_ERROR_MSG;
07842 }
07843 close(file);
07844
07845 (*code_err) = msg.id_error;
07846 return (unsigned int) msg.metric.int32;
07847 }
07848
07849
07856 unsigned int
07857 get_is_tx_noheadroom(char * dev_name,
07858 unsigned int * code_err)
07859 {
07860 int file, nb_write, nb_read;
07861 struct qos_metric_net80211_msg msg;
07862
07863 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07864 msg.type_msg = T_QUERY_MSG;
07865 msg.id_error = NO_ERRORS;
07866 msg.metric_name = IS_TX_NOHEADROOM;
07867 msg.metric.int32 = 0;
07868
07869 if (dev_name)
07870 strcpy((char *) msg.dev_name, dev_name);
07871 else
07872 msg.dev_name[0] = '\0';
07873
07874 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07875 {
07876 fprintf(stderr, "Can't open: ");
07877 perror(CROSS_LAYER_DEV_NAME_PATH);
07878 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07879 msg.type_msg = T_ERROR_MSG;
07880 }
07881 nb_write = write(file, &msg, sizeof(msg));
07882 nb_read = read(file, &msg, sizeof(msg));
07883 if (nb_read == 0)
07884 {
07885 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07886 msg.type_msg = T_ERROR_MSG;
07887 }
07888 close(file);
07889
07890 (*code_err) = msg.id_error;
07891 return (unsigned int) msg.metric.int32;
07892 }
07893
07894
07901 unsigned int
07902 get_is_scan_active(char * dev_name,
07903 unsigned int * code_err)
07904 {
07905 int file, nb_write, nb_read;
07906 struct qos_metric_net80211_msg msg;
07907
07908 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07909 msg.type_msg = T_QUERY_MSG;
07910 msg.id_error = NO_ERRORS;
07911 msg.metric_name = IS_SCAN_ACTIVE;
07912 msg.metric.int32 = 0;
07913
07914 if (dev_name)
07915 strcpy((char *) msg.dev_name, dev_name);
07916 else
07917 msg.dev_name[0] = '\0';
07918
07919 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07920 {
07921 fprintf(stderr, "Can't open: ");
07922 perror(CROSS_LAYER_DEV_NAME_PATH);
07923 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07924 msg.type_msg = T_ERROR_MSG;
07925 }
07926 nb_write = write(file, &msg, sizeof(msg));
07927 nb_read = read(file, &msg, sizeof(msg));
07928 if (nb_read == 0)
07929 {
07930 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07931 msg.type_msg = T_ERROR_MSG;
07932 }
07933 close(file);
07934
07935 (*code_err) = msg.id_error;
07936 return (unsigned int) msg.metric.int32;
07937 }
07938
07939
07946 unsigned int
07947 get_is_scan_passive(char * dev_name,
07948 unsigned int * code_err)
07949 {
07950 int file, nb_write, nb_read;
07951 struct qos_metric_net80211_msg msg;
07952
07953 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07954 msg.type_msg = T_QUERY_MSG;
07955 msg.id_error = NO_ERRORS;
07956 msg.metric_name = IS_SCAN_PASSIVE;
07957 msg.metric.int32 = 0;
07958
07959 if (dev_name)
07960 strcpy((char *) msg.dev_name, dev_name);
07961 else
07962 msg.dev_name[0] = '\0';
07963
07964 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
07965 {
07966 fprintf(stderr, "Can't open: ");
07967 perror(CROSS_LAYER_DEV_NAME_PATH);
07968 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
07969 msg.type_msg = T_ERROR_MSG;
07970 }
07971 nb_write = write(file, &msg, sizeof(msg));
07972 nb_read = read(file, &msg, sizeof(msg));
07973 if (nb_read == 0)
07974 {
07975 msg.id_error = COULD_NOT_READ_UNIX_DEV;
07976 msg.type_msg = T_ERROR_MSG;
07977 }
07978 close(file);
07979
07980 (*code_err) = msg.id_error;
07981 return (unsigned int) msg.metric.int32;
07982 }
07983
07984
07991 unsigned int
07992 get_is_node_timeout(char * dev_name,
07993 unsigned int * code_err)
07994 {
07995 int file, nb_write, nb_read;
07996 struct qos_metric_net80211_msg msg;
07997
07998 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
07999 msg.type_msg = T_QUERY_MSG;
08000 msg.id_error = NO_ERRORS;
08001 msg.metric_name = IS_NODE_TIMEOUT;
08002 msg.metric.int32 = 0;
08003
08004 if (dev_name)
08005 strcpy((char *) msg.dev_name, dev_name);
08006 else
08007 msg.dev_name[0] = '\0';
08008
08009 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08010 {
08011 fprintf(stderr, "Can't open: ");
08012 perror(CROSS_LAYER_DEV_NAME_PATH);
08013 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08014 msg.type_msg = T_ERROR_MSG;
08015 }
08016 nb_write = write(file, &msg, sizeof(msg));
08017 nb_read = read(file, &msg, sizeof(msg));
08018 if (nb_read == 0)
08019 {
08020 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08021 msg.type_msg = T_ERROR_MSG;
08022 }
08023 close(file);
08024
08025 (*code_err) = msg.id_error;
08026 return (unsigned int) msg.metric.int32;
08027 }
08028
08029
08036 unsigned int
08037 get_is_crypto_nomem(char * dev_name,
08038 unsigned int * code_err)
08039 {
08040 int file, nb_write, nb_read;
08041 struct qos_metric_net80211_msg msg;
08042
08043 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08044 msg.type_msg = T_QUERY_MSG;
08045 msg.id_error = NO_ERRORS;
08046 msg.metric_name = IS_CRYPTO_NOMEM;
08047 msg.metric.int32 = 0;
08048
08049 if (dev_name)
08050 strcpy((char *) msg.dev_name, dev_name);
08051 else
08052 msg.dev_name[0] = '\0';
08053
08054 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08055 {
08056 fprintf(stderr, "Can't open: ");
08057 perror(CROSS_LAYER_DEV_NAME_PATH);
08058 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08059 msg.type_msg = T_ERROR_MSG;
08060 }
08061 nb_write = write(file, &msg, sizeof(msg));
08062 nb_read = read(file, &msg, sizeof(msg));
08063 if (nb_read == 0)
08064 {
08065 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08066 msg.type_msg = T_ERROR_MSG;
08067 }
08068 close(file);
08069
08070 (*code_err) = msg.id_error;
08071 return (unsigned int) msg.metric.int32;
08072 }
08073
08074
08081 unsigned int
08082 get_is_crypto_tkip(char * dev_name,
08083 unsigned int * code_err)
08084 {
08085 int file, nb_write, nb_read;
08086 struct qos_metric_net80211_msg msg;
08087
08088 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08089 msg.type_msg = T_QUERY_MSG;
08090 msg.id_error = NO_ERRORS;
08091 msg.metric_name = IS_CRYPTO_TKIP;
08092 msg.metric.int32 = 0;
08093
08094 if (dev_name)
08095 strcpy((char *) msg.dev_name, dev_name);
08096 else
08097 msg.dev_name[0] = '\0';
08098
08099 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08100 {
08101 fprintf(stderr, "Can't open: ");
08102 perror(CROSS_LAYER_DEV_NAME_PATH);
08103 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08104 msg.type_msg = T_ERROR_MSG;
08105 }
08106 nb_write = write(file, &msg, sizeof(msg));
08107 nb_read = read(file, &msg, sizeof(msg));
08108 if (nb_read == 0)
08109 {
08110 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08111 msg.type_msg = T_ERROR_MSG;
08112 }
08113 close(file);
08114
08115 (*code_err) = msg.id_error;
08116 return (unsigned int) msg.metric.int32;
08117 }
08118
08119
08126 unsigned int
08127 get_is_crypto_tkipenmic(char * dev_name,
08128 unsigned int * code_err)
08129 {
08130 int file, nb_write, nb_read;
08131 struct qos_metric_net80211_msg msg;
08132
08133 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08134 msg.type_msg = T_QUERY_MSG;
08135 msg.id_error = NO_ERRORS;
08136 msg.metric_name = IS_CRYPTO_TKIPENMIC;
08137 msg.metric.int32 = 0;
08138
08139 if (dev_name)
08140 strcpy((char *) msg.dev_name, dev_name);
08141 else
08142 msg.dev_name[0] = '\0';
08143
08144 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08145 {
08146 fprintf(stderr, "Can't open: ");
08147 perror(CROSS_LAYER_DEV_NAME_PATH);
08148 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08149 msg.type_msg = T_ERROR_MSG;
08150 }
08151 nb_write = write(file, &msg, sizeof(msg));
08152 nb_read = read(file, &msg, sizeof(msg));
08153 if (nb_read == 0)
08154 {
08155 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08156 msg.type_msg = T_ERROR_MSG;
08157 }
08158 close(file);
08159
08160 (*code_err) = msg.id_error;
08161 return (unsigned int) msg.metric.int32;
08162 }
08163
08164
08171 unsigned int
08172 get_is_crypto_tkipdemic(char * dev_name,
08173 unsigned int * code_err)
08174 {
08175 int file, nb_write, nb_read;
08176 struct qos_metric_net80211_msg msg;
08177
08178 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08179 msg.type_msg = T_QUERY_MSG;
08180 msg.id_error = NO_ERRORS;
08181 msg.metric_name = IS_CRYPTO_TKIPDEMIC;
08182 msg.metric.int32 = 0;
08183
08184 if (dev_name)
08185 strcpy((char *) msg.dev_name, dev_name);
08186 else
08187 msg.dev_name[0] = '\0';
08188
08189 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08190 {
08191 fprintf(stderr, "Can't open: ");
08192 perror(CROSS_LAYER_DEV_NAME_PATH);
08193 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08194 msg.type_msg = T_ERROR_MSG;
08195 }
08196 nb_write = write(file, &msg, sizeof(msg));
08197 nb_read = read(file, &msg, sizeof(msg));
08198 if (nb_read == 0)
08199 {
08200 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08201 msg.type_msg = T_ERROR_MSG;
08202 }
08203 close(file);
08204
08205 (*code_err) = msg.id_error;
08206 return (unsigned int) msg.metric.int32;
08207 }
08208
08209
08216 unsigned int
08217 get_is_crypto_tkipcm(char * dev_name,
08218 unsigned int * code_err)
08219 {
08220 int file, nb_write, nb_read;
08221 struct qos_metric_net80211_msg msg;
08222
08223 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08224 msg.type_msg = T_QUERY_MSG;
08225 msg.id_error = NO_ERRORS;
08226 msg.metric_name = IS_CRYPTO_TKIPCM;
08227 msg.metric.int32 = 0;
08228
08229 if (dev_name)
08230 strcpy((char *) msg.dev_name, dev_name);
08231 else
08232 msg.dev_name[0] = '\0';
08233
08234 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08235 {
08236 fprintf(stderr, "Can't open: ");
08237 perror(CROSS_LAYER_DEV_NAME_PATH);
08238 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08239 msg.type_msg = T_ERROR_MSG;
08240 }
08241 nb_write = write(file, &msg, sizeof(msg));
08242 nb_read = read(file, &msg, sizeof(msg));
08243 if (nb_read == 0)
08244 {
08245 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08246 msg.type_msg = T_ERROR_MSG;
08247 }
08248 close(file);
08249
08250 (*code_err) = msg.id_error;
08251 return (unsigned int) msg.metric.int32;
08252 }
08253
08254
08261 unsigned int
08262 get_is_crypto_ccmp(char * dev_name,
08263 unsigned int * code_err)
08264 {
08265 int file, nb_write, nb_read;
08266 struct qos_metric_net80211_msg msg;
08267
08268 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08269 msg.type_msg = T_QUERY_MSG;
08270 msg.id_error = NO_ERRORS;
08271 msg.metric_name = IS_CRYPTO_CCMP;
08272 msg.metric.int32 = 0;
08273
08274 if (dev_name)
08275 strcpy((char *) msg.dev_name, dev_name);
08276 else
08277 msg.dev_name[0] = '\0';
08278
08279 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08280 {
08281 fprintf(stderr, "Can't open: ");
08282 perror(CROSS_LAYER_DEV_NAME_PATH);
08283 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08284 msg.type_msg = T_ERROR_MSG;
08285 }
08286 nb_write = write(file, &msg, sizeof(msg));
08287 nb_read = read(file, &msg, sizeof(msg));
08288 if (nb_read == 0)
08289 {
08290 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08291 msg.type_msg = T_ERROR_MSG;
08292 }
08293 close(file);
08294
08295 (*code_err) = msg.id_error;
08296 return (unsigned int) msg.metric.int32;
08297 }
08298
08299
08306 unsigned int
08307 get_is_crypto_wep(char * dev_name,
08308 unsigned int * code_err)
08309 {
08310 int file, nb_write, nb_read;
08311 struct qos_metric_net80211_msg msg;
08312
08313 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08314 msg.type_msg = T_QUERY_MSG;
08315 msg.id_error = NO_ERRORS;
08316 msg.metric_name = IS_CRYPTO_WEP;
08317 msg.metric.int32 = 0;
08318
08319 if (dev_name)
08320 strcpy((char *) msg.dev_name, dev_name);
08321 else
08322 msg.dev_name[0] = '\0';
08323
08324 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08325 {
08326 fprintf(stderr, "Can't open: ");
08327 perror(CROSS_LAYER_DEV_NAME_PATH);
08328 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08329 msg.type_msg = T_ERROR_MSG;
08330 }
08331 nb_write = write(file, &msg, sizeof(msg));
08332 nb_read = read(file, &msg, sizeof(msg));
08333 if (nb_read == 0)
08334 {
08335 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08336 msg.type_msg = T_ERROR_MSG;
08337 }
08338 close(file);
08339
08340 (*code_err) = msg.id_error;
08341 return (unsigned int) msg.metric.int32;
08342 }
08343
08344
08351 unsigned int
08352 get_is_crypto_setkey_cipher(char * dev_name,
08353 unsigned int * code_err)
08354 {
08355 int file, nb_write, nb_read;
08356 struct qos_metric_net80211_msg msg;
08357
08358 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08359 msg.type_msg = T_QUERY_MSG;
08360 msg.id_error = NO_ERRORS;
08361 msg.metric_name = IS_CRYPTO_SETKEY_CIPHER;
08362 msg.metric.int32 = 0;
08363
08364 if (dev_name)
08365 strcpy((char *) msg.dev_name, dev_name);
08366 else
08367 msg.dev_name[0] = '\0';
08368
08369 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08370 {
08371 fprintf(stderr, "Can't open: ");
08372 perror(CROSS_LAYER_DEV_NAME_PATH);
08373 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08374 msg.type_msg = T_ERROR_MSG;
08375 }
08376 nb_write = write(file, &msg, sizeof(msg));
08377 nb_read = read(file, &msg, sizeof(msg));
08378 if (nb_read == 0)
08379 {
08380 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08381 msg.type_msg = T_ERROR_MSG;
08382 }
08383 close(file);
08384
08385 (*code_err) = msg.id_error;
08386 return (unsigned int) msg.metric.int32;
08387 }
08388
08389
08396 unsigned int
08397 get_is_crypto_setkey_nokey(char * dev_name,
08398 unsigned int * code_err)
08399 {
08400 int file, nb_write, nb_read;
08401 struct qos_metric_net80211_msg msg;
08402
08403 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08404 msg.type_msg = T_QUERY_MSG;
08405 msg.id_error = NO_ERRORS;
08406 msg.metric_name = IS_CRYPTO_SETKEY_NOKEY;
08407 msg.metric.int32 = 0;
08408
08409 if (dev_name)
08410 strcpy((char *) msg.dev_name, dev_name);
08411 else
08412 msg.dev_name[0] = '\0';
08413
08414 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08415 {
08416 fprintf(stderr, "Can't open: ");
08417 perror(CROSS_LAYER_DEV_NAME_PATH);
08418 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08419 msg.type_msg = T_ERROR_MSG;
08420 }
08421 nb_write = write(file, &msg, sizeof(msg));
08422 nb_read = read(file, &msg, sizeof(msg));
08423 if (nb_read == 0)
08424 {
08425 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08426 msg.type_msg = T_ERROR_MSG;
08427 }
08428 close(file);
08429
08430 (*code_err) = msg.id_error;
08431 return (unsigned int) msg.metric.int32;
08432 }
08433
08434
08441 unsigned int
08442 get_is_crypto_delkey(char * dev_name,
08443 unsigned int * code_err)
08444 {
08445 int file, nb_write, nb_read;
08446 struct qos_metric_net80211_msg msg;
08447
08448 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08449 msg.type_msg = T_QUERY_MSG;
08450 msg.id_error = NO_ERRORS;
08451 msg.metric_name = IS_CRYPTO_DELKEY;
08452 msg.metric.int32 = 0;
08453
08454 if (dev_name)
08455 strcpy((char *) msg.dev_name, dev_name);
08456 else
08457 msg.dev_name[0] = '\0';
08458
08459 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08460 {
08461 fprintf(stderr, "Can't open: ");
08462 perror(CROSS_LAYER_DEV_NAME_PATH);
08463 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08464 msg.type_msg = T_ERROR_MSG;
08465 }
08466 nb_write = write(file, &msg, sizeof(msg));
08467 nb_read = read(file, &msg, sizeof(msg));
08468 if (nb_read == 0)
08469 {
08470 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08471 msg.type_msg = T_ERROR_MSG;
08472 }
08473 close(file);
08474
08475 (*code_err) = msg.id_error;
08476 return (unsigned int) msg.metric.int32;
08477 }
08478
08479
08486 unsigned int
08487 get_is_crypto_badcipher(char * dev_name,
08488 unsigned int * code_err)
08489 {
08490 int file, nb_write, nb_read;
08491 struct qos_metric_net80211_msg msg;
08492
08493 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08494 msg.type_msg = T_QUERY_MSG;
08495 msg.id_error = NO_ERRORS;
08496 msg.metric_name = IS_CRYPTO_BADCIPHER;
08497 msg.metric.int32 = 0;
08498
08499 if (dev_name)
08500 strcpy((char *) msg.dev_name, dev_name);
08501 else
08502 msg.dev_name[0] = '\0';
08503
08504 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08505 {
08506 fprintf(stderr, "Can't open: ");
08507 perror(CROSS_LAYER_DEV_NAME_PATH);
08508 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08509 msg.type_msg = T_ERROR_MSG;
08510 }
08511 nb_write = write(file, &msg, sizeof(msg));
08512 nb_read = read(file, &msg, sizeof(msg));
08513 if (nb_read == 0)
08514 {
08515 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08516 msg.type_msg = T_ERROR_MSG;
08517 }
08518 close(file);
08519
08520 (*code_err) = msg.id_error;
08521 return (unsigned int) msg.metric.int32;
08522 }
08523
08524
08531 unsigned int
08532 get_is_crypto_nocipher(char * dev_name,
08533 unsigned int * code_err)
08534 {
08535 int file, nb_write, nb_read;
08536 struct qos_metric_net80211_msg msg;
08537
08538 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08539 msg.type_msg = T_QUERY_MSG;
08540 msg.id_error = NO_ERRORS;
08541 msg.metric_name = IS_CRYPTO_NOCIPHER;
08542 msg.metric.int32 = 0;
08543
08544 if (dev_name)
08545 strcpy((char *) msg.dev_name, dev_name);
08546 else
08547 msg.dev_name[0] = '\0';
08548
08549 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08550 {
08551 fprintf(stderr, "Can't open: ");
08552 perror(CROSS_LAYER_DEV_NAME_PATH);
08553 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08554 msg.type_msg = T_ERROR_MSG;
08555 }
08556 nb_write = write(file, &msg, sizeof(msg));
08557 nb_read = read(file, &msg, sizeof(msg));
08558 if (nb_read == 0)
08559 {
08560 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08561 msg.type_msg = T_ERROR_MSG;
08562 }
08563 close(file);
08564
08565 (*code_err) = msg.id_error;
08566 return (unsigned int) msg.metric.int32;
08567 }
08568
08569
08576 unsigned int
08577 get_is_crypto_attachfail(char * dev_name,
08578 unsigned int * code_err)
08579 {
08580 int file, nb_write, nb_read;
08581 struct qos_metric_net80211_msg msg;
08582
08583 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08584 msg.type_msg = T_QUERY_MSG;
08585 msg.id_error = NO_ERRORS;
08586 msg.metric_name = IS_CRYPTO_ATTACHFAIL;
08587 msg.metric.int32 = 0;
08588
08589 if (dev_name)
08590 strcpy((char *) msg.dev_name, dev_name);
08591 else
08592 msg.dev_name[0] = '\0';
08593
08594 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08595 {
08596 fprintf(stderr, "Can't open: ");
08597 perror(CROSS_LAYER_DEV_NAME_PATH);
08598 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08599 msg.type_msg = T_ERROR_MSG;
08600 }
08601 nb_write = write(file, &msg, sizeof(msg));
08602 nb_read = read(file, &msg, sizeof(msg));
08603 if (nb_read == 0)
08604 {
08605 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08606 msg.type_msg = T_ERROR_MSG;
08607 }
08608 close(file);
08609
08610 (*code_err) = msg.id_error;
08611 return (unsigned int) msg.metric.int32;
08612 }
08613
08614
08621 unsigned int
08622 get_is_crypto_swfallback(char * dev_name,
08623 unsigned int * code_err)
08624 {
08625 int file, nb_write, nb_read;
08626 struct qos_metric_net80211_msg msg;
08627
08628 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08629 msg.type_msg = T_QUERY_MSG;
08630 msg.id_error = NO_ERRORS;
08631 msg.metric_name = IS_CRYPTO_SWFALLBACK;
08632 msg.metric.int32 = 0;
08633
08634 if (dev_name)
08635 strcpy((char *) msg.dev_name, dev_name);
08636 else
08637 msg.dev_name[0] = '\0';
08638
08639 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08640 {
08641 fprintf(stderr, "Can't open: ");
08642 perror(CROSS_LAYER_DEV_NAME_PATH);
08643 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08644 msg.type_msg = T_ERROR_MSG;
08645 }
08646 nb_write = write(file, &msg, sizeof(msg));
08647 nb_read = read(file, &msg, sizeof(msg));
08648 if (nb_read == 0)
08649 {
08650 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08651 msg.type_msg = T_ERROR_MSG;
08652 }
08653 close(file);
08654
08655 (*code_err) = msg.id_error;
08656 return (unsigned int) msg.metric.int32;
08657 }
08658
08659
08666 unsigned int
08667 get_is_crypto_keyfail(char * dev_name,
08668 unsigned int * code_err)
08669 {
08670 int file, nb_write, nb_read;
08671 struct qos_metric_net80211_msg msg;
08672
08673 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08674 msg.type_msg = T_QUERY_MSG;
08675 msg.id_error = NO_ERRORS;
08676 msg.metric_name = IS_CRYPTO_KEYFAIL;
08677 msg.metric.int32 = 0;
08678
08679 if (dev_name)
08680 strcpy((char *) msg.dev_name, dev_name);
08681 else
08682 msg.dev_name[0] = '\0';
08683
08684 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08685 {
08686 fprintf(stderr, "Can't open: ");
08687 perror(CROSS_LAYER_DEV_NAME_PATH);
08688 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08689 msg.type_msg = T_ERROR_MSG;
08690 }
08691 nb_write = write(file, &msg, sizeof(msg));
08692 nb_read = read(file, &msg, sizeof(msg));
08693 if (nb_read == 0)
08694 {
08695 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08696 msg.type_msg = T_ERROR_MSG;
08697 }
08698 close(file);
08699
08700 (*code_err) = msg.id_error;
08701 return (unsigned int) msg.metric.int32;
08702 }
08703
08704
08711 unsigned int
08712 get_is_crypto_enmicfail(char * dev_name,
08713 unsigned int * code_err)
08714 {
08715 int file, nb_write, nb_read;
08716 struct qos_metric_net80211_msg msg;
08717
08718 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08719 msg.type_msg = T_QUERY_MSG;
08720 msg.id_error = NO_ERRORS;
08721 msg.metric_name = IS_CRYPTO_ENMICFAIL;
08722 msg.metric.int32 = 0;
08723
08724 if (dev_name)
08725 strcpy((char *) msg.dev_name, dev_name);
08726 else
08727 msg.dev_name[0] = '\0';
08728
08729 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08730 {
08731 fprintf(stderr, "Can't open: ");
08732 perror(CROSS_LAYER_DEV_NAME_PATH);
08733 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08734 msg.type_msg = T_ERROR_MSG;
08735 }
08736 nb_write = write(file, &msg, sizeof(msg));
08737 nb_read = read(file, &msg, sizeof(msg));
08738 if (nb_read == 0)
08739 {
08740 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08741 msg.type_msg = T_ERROR_MSG;
08742 }
08743 close(file);
08744
08745 (*code_err) = msg.id_error;
08746 return (unsigned int) msg.metric.int32;
08747 }
08748
08749
08756 unsigned int
08757 get_is_ibss_capmismatch(char * dev_name,
08758 unsigned int * code_err)
08759 {
08760 int file, nb_write, nb_read;
08761 struct qos_metric_net80211_msg msg;
08762
08763 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08764 msg.type_msg = T_QUERY_MSG;
08765 msg.id_error = NO_ERRORS;
08766 msg.metric_name = IS_IBSS_CAPMISMATCH;
08767 msg.metric.int32 = 0;
08768
08769 if (dev_name)
08770 strcpy((char *) msg.dev_name, dev_name);
08771 else
08772 msg.dev_name[0] = '\0';
08773
08774 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08775 {
08776 fprintf(stderr, "Can't open: ");
08777 perror(CROSS_LAYER_DEV_NAME_PATH);
08778 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08779 msg.type_msg = T_ERROR_MSG;
08780 }
08781 nb_write = write(file, &msg, sizeof(msg));
08782 nb_read = read(file, &msg, sizeof(msg));
08783 if (nb_read == 0)
08784 {
08785 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08786 msg.type_msg = T_ERROR_MSG;
08787 }
08788 close(file);
08789
08790 (*code_err) = msg.id_error;
08791 return (unsigned int) msg.metric.int32;
08792 }
08793
08794
08801 unsigned int
08802 get_is_ibss_norate(char * dev_name,
08803 unsigned int * code_err)
08804 {
08805 int file, nb_write, nb_read;
08806 struct qos_metric_net80211_msg msg;
08807
08808 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08809 msg.type_msg = T_QUERY_MSG;
08810 msg.id_error = NO_ERRORS;
08811 msg.metric_name = IS_IBSS_NORATE;
08812 msg.metric.int32 = 0;
08813
08814 if (dev_name)
08815 strcpy((char *) msg.dev_name, dev_name);
08816 else
08817 msg.dev_name[0] = '\0';
08818
08819 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08820 {
08821 fprintf(stderr, "Can't open: ");
08822 perror(CROSS_LAYER_DEV_NAME_PATH);
08823 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08824 msg.type_msg = T_ERROR_MSG;
08825 }
08826 nb_write = write(file, &msg, sizeof(msg));
08827 nb_read = read(file, &msg, sizeof(msg));
08828 if (nb_read == 0)
08829 {
08830 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08831 msg.type_msg = T_ERROR_MSG;
08832 }
08833 close(file);
08834
08835 (*code_err) = msg.id_error;
08836 return (unsigned int) msg.metric.int32;
08837 }
08838
08839
08846 unsigned int
08847 get_is_ps_unassoc(char * dev_name,
08848 unsigned int * code_err)
08849 {
08850 int file, nb_write, nb_read;
08851 struct qos_metric_net80211_msg msg;
08852
08853 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08854 msg.type_msg = T_QUERY_MSG;
08855 msg.id_error = NO_ERRORS;
08856 msg.metric_name = IS_PS_UNASSOC;
08857 msg.metric.int32 = 0;
08858
08859 if (dev_name)
08860 strcpy((char *) msg.dev_name, dev_name);
08861 else
08862 msg.dev_name[0] = '\0';
08863
08864 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08865 {
08866 fprintf(stderr, "Can't open: ");
08867 perror(CROSS_LAYER_DEV_NAME_PATH);
08868 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08869 msg.type_msg = T_ERROR_MSG;
08870 }
08871 nb_write = write(file, &msg, sizeof(msg));
08872 nb_read = read(file, &msg, sizeof(msg));
08873 if (nb_read == 0)
08874 {
08875 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08876 msg.type_msg = T_ERROR_MSG;
08877 }
08878 close(file);
08879
08880 (*code_err) = msg.id_error;
08881 return (unsigned int) msg.metric.int32;
08882 }
08883
08884
08891 unsigned int
08892 get_is_ps_badaid(char * dev_name,
08893 unsigned int * code_err)
08894 {
08895 int file, nb_write, nb_read;
08896 struct qos_metric_net80211_msg msg;
08897
08898 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08899 msg.type_msg = T_QUERY_MSG;
08900 msg.id_error = NO_ERRORS;
08901 msg.metric_name = IS_PS_BADAID;
08902 msg.metric.int32 = 0;
08903
08904 if (dev_name)
08905 strcpy((char *) msg.dev_name, dev_name);
08906 else
08907 msg.dev_name[0] = '\0';
08908
08909 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08910 {
08911 fprintf(stderr, "Can't open: ");
08912 perror(CROSS_LAYER_DEV_NAME_PATH);
08913 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08914 msg.type_msg = T_ERROR_MSG;
08915 }
08916 nb_write = write(file, &msg, sizeof(msg));
08917 nb_read = read(file, &msg, sizeof(msg));
08918 if (nb_read == 0)
08919 {
08920 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08921 msg.type_msg = T_ERROR_MSG;
08922 }
08923 close(file);
08924
08925 (*code_err) = msg.id_error;
08926 return (unsigned int) msg.metric.int32;
08927 }
08928
08929
08936 unsigned int
08937 get_is_ps_qempty(char * dev_name,
08938 unsigned int * code_err)
08939 {
08940 int file, nb_write, nb_read;
08941 struct qos_metric_net80211_msg msg;
08942
08943 msg.struct_id = T_QOS_METRIC_NET80211_MSG;
08944 msg.type_msg = T_QUERY_MSG;
08945 msg.id_error = NO_ERRORS;
08946 msg.metric_name = IS_PS_QEMPTY;
08947 msg.metric.int32 = 0;
08948
08949 if (dev_name)
08950 strcpy((char *) msg.dev_name, dev_name);
08951 else
08952 msg.dev_name[0] = '\0';
08953
08954 if ((file = open(CROSS_LAYER_DEV_NAME_PATH, O_RDWR)) < 0)
08955 {
08956 fprintf(stderr, "Can't open: ");
08957 perror(CROSS_LAYER_DEV_NAME_PATH);
08958 msg.id_error = COULD_NOT_OPEN_UNIX_DEV;
08959 msg.type_msg = T_ERROR_MSG;
08960 }
08961 nb_write = write(file, &msg, sizeof(msg));
08962 nb_read = read(file, &msg, sizeof(msg));
08963 if (nb_read == 0)
08964 {
08965 msg.id_error = COULD_NOT_READ_UNIX_DEV;
08966 msg.type_msg = T_ERROR_MSG;
08967 }
08968 close(file);
08969
08970 (*code_err) = msg.id_error;
08971 return (unsigned int) msg.metric.int32;
08972 }
08973
08974
08975
08976
08977
08978
08979
08980
08981
08982
08983
08984
08985
08986
08987
08988
08989
08990
08991
08992
08993
08994
08995
08996
08997
08998
08999
09000
09001
09002
09003
09004
09005
09006
09007
09008
09009
09010
09011
09012
09013
09014
09015
09016
09017
09018
09019
09020
09021
09022
09023
09024
09025
09026
09027
09028
09029
09030
09031
09032
09033
09034
09035
09036
09037
09038
09039
09040
09041
09042
09043
09044
09045
09046
09047
09048
09049
09050
09051
09052
09053
09054
09055
09056
09057
09058
09059
09060
09061
09062
09063
09064
09065
09066
09067
09068
09069
09070
09071
09072
09073
09074
09075
09076
09077
09078
09079
09080
09081
09082
09083
09084
09085
09086
09087
09088
09089
09090
09091
09092
09093
09094
09095
09096
09097
09098
09099
09100
09101
09102
09103
09104
09105
09106
09107
09108
09109
09110
09111
09112
09113
09114
09115
09116
09117
09118
09119
09120
09121
09122
09123
09124
09125
09126
09127
09128
09129
09130
09131
09132
09133
09134
09135
09136
09137
09138
09139
09140
09141
09142
09143
09144
09145
09146
09147
09148
09149
09150
09151
09152
09153
09154
09155
09156
09157
09158
09159
09160
09161
09162
09163
09164
09165
09166
09167
09168
09169
09170
09171
09172
09173
09174
09175
09176
09177
09178
09179
09180
09181
09182
09183
09184
09185
09186
09187
09188
09189
09190
09191
09192
09193
09194
09195
09196