Skip to content
Snippets Groups Projects
  • Janusz Dziedzic's avatar
    ead2703e
    acs: introduce improvements · ead2703e
    Janusz Dziedzic authored
    UBUS:
     - add trigger_acs
     - improve trigger_channel_clearing
     - report clearing/acs status in ubus status
     - report status request during ubus call
    
    CMDUS:
     - handle and use CAC completion report
     - handle and use CAC status
     - handle and use oper channel report
     - fix generation of channel selection request
    
    ACS:
     - add CMDUs ACS callbacks - use them for recalc
     - remove dfs_cleanup timer - base on events when recalc
     - fix bsta connected check
     - run clearing when background CAC supported by node
     - run acs recalc when DFS chan available
     - introduce backoff when platform don't report CAC ongoing correctly
     - allow to choose highest bandwidth
     - store and check radio metrics
    
    CONFIG:
    
    Available options:
    
    config channel_plan
            option preclear_dfs '1'
            option acs '1'
            option acs_timeout '3h'
            option acs_highest_bandwidth '0'
    	option acs_skip_dfs '0'
    	option acs_prevent_cac '1'
    	option acs_scan_before_recalc '1'
    ead2703e
    History
    acs: introduce improvements
    Janusz Dziedzic authored
    UBUS:
     - add trigger_acs
     - improve trigger_channel_clearing
     - report clearing/acs status in ubus status
     - report status request during ubus call
    
    CMDUS:
     - handle and use CAC completion report
     - handle and use CAC status
     - handle and use oper channel report
     - fix generation of channel selection request
    
    ACS:
     - add CMDUs ACS callbacks - use them for recalc
     - remove dfs_cleanup timer - base on events when recalc
     - fix bsta connected check
     - run clearing when background CAC supported by node
     - run acs recalc when DFS chan available
     - introduce backoff when platform don't report CAC ongoing correctly
     - allow to choose highest bandwidth
     - store and check radio metrics
    
    CONFIG:
    
    Available options:
    
    config channel_plan
            option preclear_dfs '1'
            option acs '1'
            option acs_timeout '3h'
            option acs_highest_bandwidth '0'
    	option acs_skip_dfs '0'
    	option acs_prevent_cac '1'
    	option acs_scan_before_recalc '1'
cntlr_tlv.h 8.57 KiB
/*
 * cntlr_tlv.h - tlv building function declarations
 *
 * Copyright (C) 2020 IOPSYS Software Solutions AB. All rights reserved.
 *
 * Author: jakob.olsson@iopsys.eu
 *
 */

#ifndef CNTLR_TLV_GEN_H
#define CNTLR_TLV_GEN_H

#include <stdint.h>
#include <1905_tlvs.h>
#include <stdbool.h>

struct cac_data;
struct cmdu_buff;
struct controller;
struct iface_credential;
struct mscs_desc_usr;
struct netif_link;
struct node;
struct node_policy;
struct qos_mgmt_attr_usr;
struct scan_req_data;
struct scs_desc_usr;
struct sta_channel_report;
struct unassoc_sta_metric;
struct wifi7_radio_capabilities;
struct wifi_radio_opclass;
struct wps_credential;

uint8_t *extract_tlv_by_type(struct cmdu_buff *cmdu, uint8_t tlv_type);
int cntlr_gen_8021q_settings(struct controller *c, struct cmdu_buff *frm);
int cntlr_gen_traffic_sep_policy(struct controller *c, struct cmdu_buff *frm);
int cntlr_gen_wsc(struct controller *c, struct cmdu_buff *frm,
		  struct wps_credential *cred,
		  struct iface_credential *iface_cred,
		  uint8_t *msg, uint16_t msglen,
		  uint8_t band, uint16_t m1_auth);
int cntlr_gen_ap_radio_identifier(struct controller *c, struct cmdu_buff *frm,
		uint8_t *hwaddr);
int cntlr_gen_supp_role(struct controller *c, struct cmdu_buff *frm,
		uint8_t role);
int cntlr_gen_supp_service(struct controller *c, struct cmdu_buff *cmdu);
int cntlr_gen_map_profile(struct controller *c, struct cmdu_buff *frm,
		uint8_t profile);
int cntlr_gen_steering_policy(struct controller *c,
		struct node_policy *a, struct cmdu_buff *frm,
		int num_radio, uint8_t *radiolist);
int cntlr_gen_metric_report_policy(struct controller *c,
		struct node_policy *a, struct cmdu_buff *frm,
		int num_radio, uint8_t *radiolist);
int cntlr_gen_ch_scan_rep_policy(struct controller *c,
		struct node_policy *a, struct cmdu_buff *frm);
int cntlr_gen_unsuccess_assoc_policy(struct controller *c,
		struct node_policy *a, struct cmdu_buff *frm);
int cntlr_gen_backhaul_bss_config(struct controller *c, struct node_policy *a,
		struct cmdu_buff *frm, const uint8_t *bssid);
int cntlr_gen_al_mac(struct controller *c, struct cmdu_buff *frm,
		uint8_t *hwaddr);
int cntlr_gen_supported_freq_band(struct controller *c, struct cmdu_buff *frm,
		uint8_t freq_band);
int cntlr_gen_client_info(struct controller *c, struct cmdu_buff *frm,
		uint8_t *sta, uint8_t *bssid);
int cntlr_gen_backhaul_steer_req(struct controller *c, struct cmdu_buff *frm,
		uint8_t *macaddr, uint8_t *target_bssid, uint8_t op_class,
		uint8_t channel);
int cntlr_gen_channel_scan_req(struct controller *c, struct cmdu_buff *frm,