def get_ieee_qcnstats(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type=RTM_GETDCB, cmd=DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() rppp_rp_centiseconds = struct.unpack_from( "QQQQQQQQ", ieee[DCB_ATTR_IEEE_QCN_STATS].str(), 0) a = array.array('I') a.fromstring(ieee[DCB_ATTR_IEEE_QCN_STATS].str()[64:]) lst_statistics = self.__parse_array(a, 8) rppp_created_rps = lst_statistics[0] ignored_cnm = lst_statistics[1] estimated_total_rate = lst_statistics[2] cnms_handled_successfully = lst_statistics[3] min_total_limiters_rate = lst_statistics[4] max_total_limiters_rate = lst_statistics[5] return rppp_rp_centiseconds, rppp_created_rps, ignored_cnm, estimated_total_rate, cnms_handled_successfully, min_total_limiters_rate, max_total_limiters_rate
def get_ieee_qcn(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type = RTM_GETDCB, cmd = DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() rpg_enable = array.array('B') rpg_enable.fromstring(ieee[DCB_ATTR_IEEE_QCN].str()[:8]) a = array.array('I') a.fromstring(ieee[DCB_ATTR_IEEE_QCN].str()[8:]) lst_params = self.__parse_array(a,8) rppp_max_rps = lst_params[0] rpg_time_reset = lst_params[1] rpg_byte_reset = lst_params[2] rpg_threshold = lst_params[3] rpg_max_rate = lst_params[4] rpg_ai_rate = lst_params[5] rpg_hai_rate = lst_params[6] rpg_gd = lst_params[7] rpg_min_dec_fac = lst_params[8] rpg_min_rate = lst_params[9] cndd_state_machine = lst_params[10] return rpg_enable, rppp_max_rps, rpg_time_reset, rpg_byte_reset, rpg_threshold, rpg_max_rate, rpg_ai_rate, rpg_hai_rate, rpg_gd, rpg_min_dec_fac, rpg_min_rate, cndd_state_machine
def get_ieee_qcn(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type=RTM_GETDCB, cmd=DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() rpg_enable = array.array('B') rpg_enable.fromstring(ieee[DCB_ATTR_IEEE_QCN].str()[:8]) a = array.array('I') a.fromstring(ieee[DCB_ATTR_IEEE_QCN].str()[8:]) lst_params = self.__parse_array(a, 8) rppp_max_rps = lst_params[0] rpg_time_reset = lst_params[1] rpg_byte_reset = lst_params[2] rpg_threshold = lst_params[3] rpg_max_rate = lst_params[4] rpg_ai_rate = lst_params[5] rpg_hai_rate = lst_params[6] rpg_gd = lst_params[7] rpg_min_dec_fac = lst_params[8] rpg_min_rate = lst_params[9] cndd_state_machine = lst_params[10] return rpg_enable, rppp_max_rps, rpg_time_reset, rpg_byte_reset, rpg_threshold, rpg_max_rate, rpg_ai_rate, rpg_hai_rate, rpg_gd, rpg_min_dec_fac, rpg_min_rate, cndd_state_machine
def get_ieee_pfc_delay(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type = RTM_GETDCB, cmd = DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() a = array.array('B') a.fromstring(ieee[DCB_ATTR_IEEE_PFC].str()[0:]) return a[4] + (a[5] << 8)
def get_ieee_pfc(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type = RTM_GETDCB, cmd = DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() a = array.array('B') a.fromstring(ieee[DCB_ATTR_IEEE_PFC].str()[0:]) return a[1]
def get_ieee_ets(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type = RTM_GETDCB, cmd = DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() willing, ets_cap, cbs = struct.unpack_from("BBB", ieee[DCB_ATTR_IEEE_ETS].str(), 0) a = array.array('B') a.fromstring(ieee[DCB_ATTR_IEEE_ETS].str()[3:]) f = lambda A, n=8: [A[i:i+n] for i in range(0, len(A), n)] tc_tc_bw, tc_rx_bw, tc_tsa, prio_tc, tc_reco_bw, tc_reco_tsa, reco_prio_tc = f(a,8) return prio_tc, tc_tsa, tc_tc_bw
def get_ieee_qcnstats(self): a = NulStrAttr(DCB_ATTR_IFNAME, self.intf) m = DcbNlMessage(type = RTM_GETDCB, cmd = DCB_CMD_IEEE_GET, flags=NLM_F_REQUEST, attrs=[a]) m.send(self.conn) m = DcbNlMessage.recv(self.conn) ieee = m.attrs[DCB_ATTR_IEEE].nested() rppp_rp_centiseconds = struct.unpack_from("QQQQQQQQ",ieee[DCB_ATTR_IEEE_QCN_STATS].str(), 0); a = array.array('I') a.fromstring(ieee[DCB_ATTR_IEEE_QCN_STATS].str()[64:]) lst_statistics = self.__parse_array(a,8) rppp_created_rps = lst_statistics[0] ignored_cnm = lst_statistics[1] estimated_total_rate = lst_statistics[2] cnms_handled_successfully = lst_statistics[3] min_total_limiters_rate = lst_statistics[4] max_total_limiters_rate = lst_statistics[5] return rppp_rp_centiseconds, rppp_created_rps, ignored_cnm, estimated_total_rate, cnms_handled_successfully, min_total_limiters_rate, max_total_limiters_rate