예제 #1
0
    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]
예제 #2
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"
         )
예제 #3
0
파일: TaggedAPI.py 프로젝트: Stas0k/testing
 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