def from_lldptool_cee(cls, tlvs): """ :rtype: DCBModel """ lldptool_cee = tlvs['CEE DCBX TLV']['Application TLV:'] # _ = {'Applications': {('Ethertype', 35078): {8: True}, # ('Ethertype', 35092): {8: True}, # ('TCP/UDP Port', 3260): {16: True}}} applications = {} for app_entry, priority_mask in lldptool_cee['Applications'].iteritems(): selector, protocol = app_entry priorities = bitmask_to_dict(priority_mask) for up in priorities: applications[AppPriorityEntry(priority=up, selector=cls.selectors[ selector], protocol=protocol)] = True return cls( control=DCBControlModel( enable=True, # advertise is always true because we are either transmitting # or receiving when displayed by lldptool advertise=True, willing=lldptool.yes_no_to_bool(lldptool_cee["Willing"])), data=AppModel(applications=applications))
def from_lldptool_ieee(cls, tlvs): """ :rtype: DCBModel """ lldptool_ieee = tlvs['IEEE 8021QAZ PFC TLV'] return cls( control=DCBControlModel( enable=True, # advertise is always true because we are either transmitting # or receiving when displayed by lldptool advertise=True, willing=lldptool.yes_no_to_bool(lldptool_ieee["Willing"])), data=ETSModel( enabled=lldptool_ieee['PFC enabled'], max_tcs=lldptool_ieee["PFC capable traffic classes"]))
def from_lldptool_ieee(cls, tlvs): """ :rtype: DCBModel """ lldptool_ieee = tlvs['IEEE 8021QAZ ETS Configuration TLV'] return cls( control=DCBControlModel( enable=True, # advertise is always true because we are either transmitting # or receiving when displayed by lldptool advertise=True, willing=lldptool.yes_no_to_bool(lldptool_ieee["Willing"])), data=ETSModel( up2tc=lldptool.up2tc(lldptool_ieee['PRIO_MAP']), tcbw=dcbtool.percentages(lldptool_ieee['TC Bandwidth']), tsa=lldptool.tsa(lldptool_ieee["TSA_MAP"])))
def from_lldptool_cee(cls, tlvs): """ :rtype: DCBModel """ lldptool_cee = tlvs['CEE DCBX TLV']['Priority Groups TLV:'] tsa_map, up2tc = DCBTool.cee_to_ieee_ets( lldptool_cee['PGID Priorities']) return cls( control=DCBControlModel( enable=True, # advertise is always true because we are either transmitting # or receiving when displayed by lldptool advertise=True, willing=lldptool.yes_no_to_bool(lldptool_cee["Willing"])), data=ETSModel( up2tc=up2tc, tcbw=lldptool_cee['PGID Percentages'], tsa=tsa_map))