def test_filters(self): filters = ( {'protocol': 'all', 'pref': 49149, 'kind': 'u32', 'u32': {}}, {'protocol': 'all', 'pref': 49149, 'kind': 'u32', 'u32': { 'fh': '803:', 'ht_divisor': 1}}, {'protocol': 'all', 'pref': 49149, 'kind': 'u32', 'u32': { 'fh': '803::800', 'order': 2048, 'key_ht': 0x803, 'key_bkt': 0x0, 'terminal': True, 'match': { 'value': 0x0, 'mask': 0x0, 'offset': 0x0}, 'actions': [ {'order': 1, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'tap1', 'op': 'pipe', 'index': 18, 'ref': 1, 'bind': 1}]}}, {'protocol': 'all', 'pref': 49150, 'kind': 'u32', 'u32': {}}, {'protocol': 'all', 'pref': 49150, 'kind': 'u32', 'u32': { 'fh': '802:', 'ht_divisor': 1}}, {'protocol': 'all', 'pref': 49150, 'kind': 'u32', 'u32': { 'fh': '802::800', 'order': 2048, 'key_ht': 0x802, 'key_bkt': 0x0, 'terminal': True, 'match': { 'value': 0x0, 'mask': 0x0, 'offset': 0x0}, 'actions': [ {'order': 33, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'tap2', 'op': 'pipe', 'index': 17, 'ref': 1, 'bind': 1}]}}, {'protocol': 'all', 'pref': 49152, 'kind': 'u32', 'u32': {}}, {'protocol': 'all', 'pref': 49152, 'kind': 'u32', 'u32': { 'fh': '800:', 'ht_divisor': 1}}, {'protocol': 'all', 'pref': 49152, 'kind': 'u32', 'u32': { 'fh': '800::800', 'order': 2048, 'key_ht': 0x800, 'key_bkt': 0x0, 'terminal': True, 'match': { 'value': 0x0, 'mask': 0x0, 'offset': 0x0}, 'actions': [ {'order': 1, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'target', 'op': 'pipe', 'index': 60, 'ref': 1, 'bind': 1}, {'order': 2, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'target2', 'op': 'pipe', 'index': 61, 'ref': 1, 'bind': 1}, ]}}, ) dirName = os.path.dirname(os.path.realpath(__file__)) path = os.path.join(dirName, "tc_filter_show.out") with open(path) as tc_filter_show: data = tc_filter_show.read() for parsed, correct in izip_longest(tc._filters(None, out=data), filters): self.assertEqual(parsed, correct)
def test_filters(self): filters = ( {'protocol': 'ip', 'pref': 49149, 'kind': 'u32', 'u32': {}}, {'protocol': 'ip', 'pref': 49149, 'kind': 'u32', 'u32': { 'fh': '803:', 'ht_divisor': 1}}, {'protocol': 'ip', 'pref': 49149, 'kind': 'u32', 'u32': { 'fh': '803::800', 'order': 2048, 'key_ht': 0x803, 'key_bkt': 0x0, 'terminal': True, 'match': { 'value': 0x0, 'mask': 0x0, 'offset': 0x0}, 'actions': [ {'order': 1, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'tap1', 'op': 'pipe', 'index': 18, 'ref': 1, 'bind': 1}]}}, {'protocol': 'ip', 'pref': 49150, 'kind': 'u32', 'u32': {}}, {'protocol': 'ip', 'pref': 49150, 'kind': 'u32', 'u32': { 'fh': '802:', 'ht_divisor': 1}}, {'protocol': 'ip', 'pref': 49150, 'kind': 'u32', 'u32': { 'fh': '802::800', 'order': 2048, 'key_ht': 0x802, 'key_bkt': 0x0, 'terminal': True, 'match': { 'value': 0x0, 'mask': 0x0, 'offset': 0x0}, 'actions': [ {'order': 33, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'tap2', 'op': 'pipe', 'index': 17, 'ref': 1, 'bind': 1}]}}, {'protocol': 'ip', 'pref': 49152, 'kind': 'u32', 'u32': {}}, {'protocol': 'ip', 'pref': 49152, 'kind': 'u32', 'u32': { 'fh': '800:', 'ht_divisor': 1}}, {'protocol': 'ip', 'pref': 49152, 'kind': 'u32', 'u32': { 'fh': '800::800', 'order': 2048, 'key_ht': 0x800, 'key_bkt': 0x0, 'terminal': True, 'match': { 'value': 0x0, 'mask': 0x0, 'offset': 0x0}, 'actions': [ {'order': 1, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'target', 'op': 'pipe', 'index': 60, 'ref': 1, 'bind': 1}, {'order': 2, 'kind': 'mirred', 'action': 'egress_mirror', 'target': 'target2', 'op': 'pipe', 'index': 61, 'ref': 1, 'bind': 1}, ]}}, ) dirName = os.path.dirname(os.path.realpath(__file__)) path = os.path.join(dirName, "tc_filter_show.out") with open(path) as tc_filter_show: data = tc_filter_show.read() for parsed, correct in izip_longest(tc._filters(None, out=data), filters): self.assertEqual(parsed, correct)
def _analyse_filters(self): filters = list(tc._filters(self.device_name)) untagged_filters = self._untagged_filters(filters) tagged_filters = self._tagged_filters(filters) return TcFilters(untagged_filters, tagged_filters)