2 * @brief server side (frm_fwp) functions for communication
3 * resource manager - station
6 #include <frm_generic.h>
11 #include <fres_sa_scenario.h>
15 #include <ul_logreg.h>
19 #include "wifi_agent_idl.h"
20 #include "fwp_admctrl.h"
21 #include "wifi_agent.h"
23 struct forb_wifi_agent_idl_impl wifi_agent_impl = {
24 .add = wifi_agent_idl_add,
25 .print_state = wifi_agent_idl_print_state,
29 * Print list of stored stations
31 void wifi_agent_idl_print_state(wifi_agent_idl _obj, CORBA_Environment *ev)
35 //TODO: Initially here was print to descriptor 2 - find posix equivalent / test if it's working
36 //dprintf(2, "Actual_list_of_stations\n");
37 printf("Actual_list_of_stations\n");
38 ul_list_for_each(sta_list, &priv.sta_list, sta2){
39 printf("%llu_-_%d\n", sta2->client_mac_addr, sta2->rate);
41 printf("------------\n\n");
46 * Add information about AP (mac_address & bit rate)
48 CORBA_long wifi_agent_idl_add(wifi_agent_idl _obj, const CORBA_long rate, const CORBA_long_long client_mac_addr, CORBA_Environment *ev)
50 struct fwp_sta *ed = forb_instance_data(_obj);
52 fwp_sta_t *new_to_add;
54 new_to_add = (fwp_sta_t*)malloc(sizeof(fwp_sta_t));
56 /*client transmission bitrate (wifi_agent -> fwp_manager)*/
58 ed->client_mac_addr = client_mac_addr;
60 /*fill the linked list here*/
61 ul_list_for_each(sta_list, &priv.sta_list, sta){
63 /*client was sending info before*/
64 if(sta->client_mac_addr == ed->client_mac_addr) {
65 /*mac address is the same change only rate*/
71 /*client was not sending info yet*/
72 new_to_add->rate = ed->rate;
73 new_to_add->client_mac_addr = ed->client_mac_addr;
75 sta_list_ins_tail(&priv.sta_list, new_to_add);