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 dprintf(2, "Actual_list_of_stations\n");
36 ul_list_for_each(sta_list, &priv.sta_list, sta2){
37 dprintf(2, "%llu_-_%d\n", sta2->client_mac_addr, sta2->rate);
39 dprintf(2, "------------\n\n");
44 * Add information about AP (mac_address & bit rate)
46 CORBA_long wifi_agent_idl_add(wifi_agent_idl _obj, const CORBA_long rate, const CORBA_long_long client_mac_addr, CORBA_Environment *ev)
48 struct fwp_sta *ed = forb_instance_data(_obj);
50 fwp_sta_t *new_to_add;
52 new_to_add = (fwp_sta_t*)malloc(sizeof(fwp_sta_t));
54 /*client transmission bitrate (wifi_agent -> fwp_manager)*/
56 ed->client_mac_addr = client_mac_addr;
58 /*fill the linked list here*/
59 ul_list_for_each(sta_list, &priv.sta_list, sta){
61 /*client was sending info before*/
62 if(sta->client_mac_addr == ed->client_mac_addr) {
63 /*mac address is the same change only rate*/
69 /*client was not sending info yet*/
70 new_to_add->rate = ed->rate;
71 new_to_add->client_mac_addr = ed->client_mac_addr;
73 sta_list_ins_tail(&priv.sta_list, new_to_add);