def setRxAndNonRxPorts(self, tgDutLinks): """ Maps all expected receiving ports and non-rx ports :param tgDutLinks: BastTest.TGDutLinks dict """ Bridge1QConfig.getVlanSettings() vlanConf = Bridge1QConfig.interfaceVlanSettings() TGPorts2DutPorts = { tgDutLinks[int(tgPort)].DutDevPort.name: tgPort for tgPort in self._txInterfaces } for port in TGPorts2DutPorts: dits = self._txInterfaces[TGPorts2DutPorts[port]] for _ in range(dits['packet_vids'].count('X') + dits['packet_vids'].count(0)): try: if vlanConf[port]['pvid']: dits['vlan_tested'].append(vlanConf[port]['pvid']) except TypeError: continue for port in self._txInterfaces: self._txInterfaces[port]['vlan_tested'] = Counter( self._txInterfaces[port]['vlan_tested']) return \ [[int(t) for t in Bridge1QConfig.getVIDs(x) if int(t) in self._txInterfaces[TGPorts2DutPorts[x]]['packet_vids'] or t == Bridge1QConfig.getPVID(x)] for x, v in vlanConf.items() if x in TGPorts2DutPorts][0]
def verifyingMaxVlans(self): funcname = GetFunctionName(self.verifyingMaxVlans) max_vlans1 = self._testClassref.TestCaseData["vlans_sizes"][ self._testClassref.TestData.DutInfo.Board_Model]["index1"] max_vlans2 = self._testClassref.TestCaseData["vlans_sizes"][ self._testClassref.TestData.DutInfo.Board_Model]["index2"] total = max_vlans1 + max_vlans2 max_instances = self._testClassref.TestCaseData["STP"]["max_instances"] ret = len( Bridge1QConfig.getVIDs( self._testClassref.TGDutLinks[1].DutDevPort)) + len( Bridge1QConfig.getVIDs( self._testClassref.TGDutLinks[2].DutDevPort)) if ret < total: self.FailTheTest( f"{funcname} {ret} max vlans didn't match expected {total} amount" )
def addTriggers(self, tgDutLinks, srcMac='AA:AA:AA:AA:AA:00', mask=None): for txPort, txDits in self._txInterfaces.items(): for vlanTested in txDits['vlan_tested']: try: for rxPort in self._rxInterfaces[vlanTested]: rxDutPort = tgDutLinks[rxPort].DutDevPort.name isTagged = Bridge1QConfig.isTagged(rxDutPort, str(vlanTested)) if isTagged and not len( [x for x in Bridge1QConfig.getVIDs(rxDutPort).values() if x != 'tagged']): self._addVlanTagging(tgDutLinks[rxPort], toHex(vlanTested), txPort=tgDutLinks[int(txPort)]) except KeyError as e: if e.args[0] in txDits['vlan_tested'] or e.args[0] == 'X': continue raise KeyError