Exemplo n.º 1
0
    def arp_show_counters_line(self, line):
        '''Show arp counters data from arp table.\n'''
        parser = parsing_opts.gen_parser(self, "show_counters_arp",
                                         self.arp_show_counters_line.__doc__,
                                         parsing_opts.EMU_SHOW_CNT_GROUP,
                                         parsing_opts.EMU_ALL_NS,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_DUMPS_OPT)

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.ns_data_cnt, opts, req_ns=True)
        return True
Exemplo n.º 2
0
    def ipv6_show_counters_line(self, line):
        '''Show IPV6 counters data from ipv6 table.\n'''
        parser = parsing_opts.gen_parser(self, "ipv6_show_counters",
                                         self.ipv6_show_counters_line.__doc__,
                                         parsing_opts.EMU_SHOW_CNT_GROUP,
                                         parsing_opts.EMU_ALL_NS,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_DUMPS_OPT)

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.data_c, opts, req_ns=True)
        return True
Exemplo n.º 3
0
    def tdl_show_counters_line(self, line):
        """Show Tdl counters.\n"""
        parser = parsing_opts.gen_parser(self, "show_counters_tdl",
                                         self.tdl_show_counters_line.__doc__,
                                         parsing_opts.EMU_SHOW_CNT_GROUP,
                                         parsing_opts.EMU_NS_GROUP,
                                         parsing_opts.MAC_ADDRESS,
                                         parsing_opts.EMU_DUMPS_OPT)

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.client_data_cnt, opts, req_ns=True)
        return True
Exemplo n.º 4
0
    def ipfix_show_counters_line(self, line):
        """Show IPFix data counters data.\n"""
        parser = parsing_opts.gen_parser(self, "show_counters_ipfix",
                                         self.ipfix_show_counters_line.__doc__,
                                         parsing_opts.EMU_SHOW_CNT_GROUP,
                                         parsing_opts.EMU_NS_GROUP,
                                         parsing_opts.MAC_ADDRESS,
                                         parsing_opts.EMU_DUMPS_OPT)

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.data_c, opts, req_ns=True)
        return True
Exemplo n.º 5
0
    def dot1x_show_counters_line(self, line):
        '''Show dot1x counters (per client).\n'''
        parser = parsing_opts.gen_parser(self, "dot1x_show_counters",
                                         self.dot1x_show_counters_line.__doc__,
                                         parsing_opts.EMU_SHOW_CNT_GROUP,
                                         parsing_opts.EMU_NS_GROUP,
                                         parsing_opts.EMU_CLIENT_GROUP,
                                         parsing_opts.EMU_DUMPS_OPT)

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.data_c, opts, req_ns=True)
        return True
Exemplo n.º 6
0
 def mdns_flush_cache_line(self, line):
     """Flush mDNS namespace cache.\n"""
     parser = parsing_opts.gen_parser(self, "mdns_flush_cache",
                                      self.mdns_flush_cache_line.__doc__,
                                      parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                      parsing_opts.EMU_ALL_NS)
     opts = parser.parse_args(line.split())
     if opts.all_ns:
         self.run_on_all_ns(self.flush_cache)
     else:
         ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
         self.flush_cache(ns_key)
     self.logger.post_cmd(True)
Exemplo n.º 7
0
    def icmp_show_counters_line(self, line):
        '''Show Icmp counters (per client).\n'''
        parser = parsing_opts.gen_parser(self,
                                         "show_counters_icmp",
                                         self.icmp_show_counters_line.__doc__,
                                         parsing_opts.EMU_SHOW_CNT_GROUP,
                                         parsing_opts.EMU_NS_GROUP,
                                         parsing_opts.EMU_DUMPS_OPT
                                         )

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.ns_data_cnt, opts, req_ns=True)
        return True
Exemplo n.º 8
0
 def dns_flush_cache_line(self, line):
     """Flush Dns Resolver cache.\n"""
     parser = parsing_opts.gen_parser(
         self,
         "dns_flush_cache",
         self.dns_flush_cache_line.__doc__,
         parsing_opts.EMU_NS_GROUP,
         parsing_opts.MAC_ADDRESS,
     )
     opts = parser.parse_args(line.split())
     ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
     c_key = EMUClientKey(ns_key, opts.mac)
     self.flush_cache(c_key)
     self.logger.post_cmd(True)
Exemplo n.º 9
0
    def transport_e_show_counters_line(self, line):
        '''Show transport example counters (per ns).\n'''
        parser = parsing_opts.gen_parser(self,
                                        "show_counters_transe",
                                        self.transport_e_show_counters_line.__doc__,
                                        parsing_opts.EMU_SHOW_CNT_GROUP,
                                        parsing_opts.EMU_ALL_NS,
                                        parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                        parsing_opts.EMU_DUMPS_OPT
                                        )

        opts = parser.parse_args(line.split())
        self.emu_c._base_show_counters(self.data_c, opts, req_ns = True)

        return True
Exemplo n.º 10
0
    def icmp_start_ping(self, line):
        """ICMP start pinging (per client).\n"""
        parser = parsing_opts.gen_parser(self,
                                         "icmp_start_ping",
                                         self.icmp_start_ping.__doc__,
                                         parsing_opts.MAC_ADDRESS,
                                         parsing_opts.EMU_NS_GROUP,
                                         parsing_opts.EMU_ICMP_PING_PARAMS
                                         )
        opts = parser.parse_args(line.split())
        ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
        c_key = EMUClientKey(ns_key, opts.mac)

        self.__icmp_start_ping_print(c_key=c_key, amount=opts.ping_amount, pace=opts.ping_pace, dst=opts.ping_dst,
                            timeout=opts.ping_timeout, pkt_size=opts.ping_size)
Exemplo n.º 11
0
    def ipv6_show_cache_line(self, line):
        '''IPV6 show cache command\n'''
        parser = parsing_opts.gen_parser(self, "ipv6_show_cache",
                                         self.ipv6_show_cache_line.__doc__,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_ALL_NS)

        opts = parser.parse_args(line.split())

        keys_to_headers = [
            {
                'key': 'mac',
                'header': 'MAC'
            },
            {
                'key': 'ipv6',
                'header': 'IPv6'
            },
            {
                'key': 'refc',
                'header': 'Ref.Count'
            },
            {
                'key': 'resolve',
                'header': 'Resolve'
            },
            {
                'key': 'state',
                'header': 'State'
            },
        ]
        args = {
            'title': 'Ipv6 cache',
            'empty_msg': 'No ipv6 cache in namespace',
            'keys_to_headers': keys_to_headers
        }
        if opts.all_ns:
            self.run_on_all_ns(self.show_cache,
                               print_ns_info=True,
                               func_on_res=self.print_table_by_keys,
                               func_on_res_args=args)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            res = self.show_cache(ns_key)
            self.print_table_by_keys(data=res, **args)

        return True
Exemplo n.º 12
0
    def arp_cmd_query_line(self, line):
        '''Arp cmd query command\n'''
        parser = parsing_opts.gen_parser(self, "arp_cmd_query",
                                         self.arp_cmd_query_line.__doc__,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.MAC_ADDRESS,
                                         parsing_opts.ARP_GARP)

        opts = parser.parse_args(line.split())
        opts.garp = parsing_opts.ON_OFF_DICT.get(opts.garp)

        self._validate_port(opts)
        ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
        c_key = EMUClientKey(ns_key, opts.mac)
        self.cmd_query(c_key, opts.garp)
        return True
Exemplo n.º 13
0
    def _enable_disable_gen_line(self, line, caller_func, enable_disable):
        parser = parsing_opts.gen_parser(
            self,
            "ipfix_enable_gen",
            caller_func.__doc__,
            parsing_opts.EMU_NS_GROUP_NOT_REQ,
            parsing_opts.MAC_ADDRESS,
            parsing_opts.GEN_NAME,
        )

        opts = parser.parse_args(line.split())
        self._validate_port(opts)
        ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
        c_key = EMUClientKey(ns_key, opts.mac)
        return self.enable_generator(c_key, opts.gen_name,
                                     enable_disable == 'enable')
Exemplo n.º 14
0
 def mdns_show_cache_line(self, line):
     """Show resolved hostnames in mDNS namespace\n"""
     parser = parsing_opts.gen_parser(self, "mdns_show_cache",
                                      self.mdns_show_cache_line.__doc__,
                                      parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                      parsing_opts.EMU_ALL_NS)
     opts = parser.parse_args(line.split())
     keys_to_headers = [
         {
             'key': 'name',
             'header': 'Hostname'
         },
         {
             'key': 'answer',
             'header': 'Answer'
         },
         {
             'key': 'dns_type',
             'header': 'Type'
         },
         {
             'key': 'dns_class',
             'header': 'Class'
         },
         {
             'key': 'ttl',
             'header': 'Time To Live'
         },
         {
             'key': 'time_left',
             'header': 'Time Left'
         },
     ]
     args = {
         'title': 'mDNS Cache',
         'empty_msg': 'No entries in mDNS cache.',
         'keys_to_headers': keys_to_headers
     }
     if opts.all_ns:
         self.run_on_all_ns(self.get_cache,
                            print_ns_info=True,
                            func_on_res=self.print_table_by_keys,
                            func_on_res_args=args)
     else:
         ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
         res = self.get_cache(ns_key)
         self.print_table_by_keys(data=res, **args)
Exemplo n.º 15
0
    def arp_set_cfg_line(self, line):
        '''Arp set configuration command\n'''
        parser = parsing_opts.gen_parser(self, "arp_set_cfg",
                                         self.arp_set_cfg_line.__doc__,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_ALL_NS,
                                         parsing_opts.ARP_ENABLE)

        opts = parser.parse_args(line.split())
        opts.enable = parsing_opts.ON_OFF_DICT.get(opts.enable)

        if opts.all_ns:
            self.run_on_all_ns(self.set_cfg, enable=opts.enable)
        else:
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            self.set_cfg(ns_key, opts.enable)
        return True
Exemplo n.º 16
0
 def mdns_remove_hosts_line(self, line):
     """Remove hosts from mDNS client.\n"""
     parser = parsing_opts.gen_parser(self, "mdns_remove_hosts",
                                      self.mdns_remove_hosts_line.__doc__,
                                      parsing_opts.EMU_NS_GROUP,
                                      parsing_opts.MAC_ADDRESS,
                                      parsing_opts.MDNS_HOSTS_LIST)
     opts = parser.parse_args(line.split())
     ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
     c_key = EMUClientKey(ns_key, opts.mac)
     non_existing_hosts = self.add_remove_hosts(c_key=c_key,
                                                op=True,
                                                hosts=opts.hosts)
     if non_existing_hosts:
         msg = "Hosts: {} didn't exist.".format(listify(non_existing_hosts))
         text_tables.print_colored_line(msg, "yellow")
     self.logger.post_cmd(True)  # If we got here, it was successful
Exemplo n.º 17
0
    def igmp_remove_all_mc_line(self, line):
        '''IGMP remove all mc command\n'''
        parser = parsing_opts.gen_parser(
            self,
            "igmp_remove_all_mc",
            self.igmp_remove_all_mc_line.__doc__,
            parsing_opts.EMU_NS_GROUP_NOT_REQ,
            parsing_opts.EMU_ALL_NS,
        )

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.remove_all_mc)
        else:
            res = self.remove_all_mc(opts.port, opts.vlan, opts.tpid)
        return True
Exemplo n.º 18
0
    def igmp_get_cfg_line(self, line):
        '''IGMP get configuration command\n'''
        parser = parsing_opts.gen_parser(self, "igmp_get_cfg",
                                         self.igmp_get_cfg_line.__doc__,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_ALL_NS)

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.get_cfg,
                               print_ns_info=True,
                               func_on_res=self.print_plug_cfg)
        else:
            res = self.get_cfg(opts.port, opts.vlan, opts.tpid)
            self.print_plug_cfg(res)
        return True
Exemplo n.º 19
0
    def icmp_stop_ping(self, line):
        """ICMP stop pinging (per client).\n"""
        parser = parsing_opts.gen_parser(self,
                                         "icmp_stop_ping",
                                         self.icmp_stop_ping.__doc__,
                                         parsing_opts.MAC_ADDRESS,
                                         parsing_opts.EMU_NS_GROUP,
                                         )

        opts = parser.parse_args(line.split())
        ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
        c_key = EMUClientKey(ns_key, opts.mac)
        self.emu_c.logger.pre_cmd('Attempting to stop ping :')
        res = self.stop_ping(c_key=c_key)
        self.emu_c.logger.post_cmd(res)
        if not res:
            text_tables.print_colored_line("No active pinging.", 'yellow', buffer=sys.stdout)
Exemplo n.º 20
0
    def ipfix_set_data_rate_line(self, line):
        """Set IPFix generator data rate.\n"""
        parser = parsing_opts.gen_parser(
            self,
            "ipfix_set_data_rate",
            self.ipfix_set_data_rate_line.__doc__,
            parsing_opts.EMU_NS_GROUP_NOT_REQ,
            parsing_opts.MAC_ADDRESS,
            parsing_opts.GEN_NAME,
            parsing_opts.GEN_RATE,
        )

        opts = parser.parse_args(line.split())
        self._validate_port(opts)
        ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
        c_key = EMUClientKey(ns_key, opts.mac)
        return self.set_gen_rate(c_key, opts.gen_name, opts.rate)
Exemplo n.º 21
0
 def dns_show_cache_line(self, line):
     """Show resolved domains for a Dns Resolver\n"""
     parser = parsing_opts.gen_parser(
         self,
         "dns_show_cache",
         self.dns_show_cache_line.__doc__,
         parsing_opts.EMU_NS_GROUP,
         parsing_opts.MAC_ADDRESS,
     )
     opts = parser.parse_args(line.split())
     keys_to_headers = [
         {
             'key': 'name',
             'header': 'Domain'
         },
         {
             'key': 'answer',
             'header': 'Answer'
         },
         {
             'key': 'dns_type',
             'header': 'Type'
         },
         {
             'key': 'dns_class',
             'header': 'Class'
         },
         {
             'key': 'ttl',
             'header': 'Time To Live'
         },
         {
             'key': 'time_left',
             'header': 'Time Left'
         },
     ]
     args = {
         'title': 'Dns Cache',
         'empty_msg': 'No entries in Dns cache.',
         'keys_to_headers': keys_to_headers
     }
     ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
     c_key = EMUClientKey(ns_key, opts.mac)
     res = self.get_cache(c_key)
     self.print_table_by_keys(data=res, **args)
Exemplo n.º 22
0
    def igmp_set_cfg_line(self, line):
        '''IGMP set configuration command\n'''
        parser = parsing_opts.gen_parser(self, "igmp_set_cfg",
                                         self.igmp_set_cfg_line.__doc__,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_ALL_NS,
                                         parsing_opts.MTU,
                                         parsing_opts.MAC_ADDRESS)

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.set_cfg, mtu=opts.mtu, dmac=opts.mac)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            self.set_cfg(ns_key, mtu=opts.mtu, dmac=opts.mac)
        return True
Exemplo n.º 23
0
 def mdns_query_line(self, line):
     """Query mDNS.\n"""
     parser = parsing_opts.gen_parser(
         self, "mdns_query", self.mdns_query_line.__doc__,
         parsing_opts.EMU_NS_GROUP, parsing_opts.MAC_ADDRESS,
         parsing_opts.DNS_QUERY_NAME, parsing_opts.DNS_QUERY_TYPE,
         parsing_opts.DNS_QUERY_CLASS, parsing_opts.MDNS_QUERY_IPV6)
     opts = parser.parse_args(line.split())
     ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
     c_key = EMUClientKey(ns_key, opts.mac)
     query = {
         "name": opts.name,
         "dns_type": opts.dns_type,
         "dns_class": opts.dns_class,
         "ipv6": opts.ipv6
     }
     self.query(c_key, queries=[query])
     self.logger.post_cmd(True)  # If we got here, it was successful
Exemplo n.º 24
0
    def ipv6_remove_all_mld_line(self, line):
        '''IPV6 remove all mld command\n'''
        parser = parsing_opts.gen_parser(self,
                                        "ipv6_remove_all_mld",
                                        self.ipv6_remove_all_mld_line.__doc__,
                                        parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                        parsing_opts.EMU_ALL_NS,
                                        )

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.remove_all_mld)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            res = self.remove_all_mld(ns_key)
        return True
Exemplo n.º 25
0
    def arp_cmd_query_line(self, line):
        '''Arp cmd query command\n'''
        parser = parsing_opts.gen_parser(self,
                                        "arp_cmd_query",
                                        self.arp_cmd_query_line.__doc__,
                                        parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                        parsing_opts.EMU_ALL_NS,
                                        parsing_opts.MAC_REQ,
                                        parsing_opts.ARP_GARP
                                        )

        opts = parser.parse_args(line.split())
        opts.garp = parsing_opts.ON_OFF_DICT.get(opts.garp)

        if opts.all_ns:
            self.run_on_all_ns(self.cmd_query, mac = opts.mac, garp = opts.garp)
        else:
            self.cmd_query(opts.port, opts.vlan, opts.tpid, opts.mac, opts.garp)
        return True
Exemplo n.º 26
0
    def arp_get_cfg_line(self, line):
        '''Arp get configuration command\n'''
        parser = parsing_opts.gen_parser(self, "arp_get_cfg",
                                         self.arp_get_cfg_line.__doc__,
                                         parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                         parsing_opts.EMU_ALL_NS)

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.get_cfg,
                               print_ns_info=True,
                               func_on_res=self.print_plug_cfg)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            res = self.get_cfg(ns_key)
            self.print_plug_cfg(res)
        return True
Exemplo n.º 27
0
    def dot1x_show_client_info_line(self, line):
        '''Show dot1x client info (per 1 client).\n'''
        parser = parsing_opts.gen_parser(
            self,
            "dot1x_show_client_info",
            self.dot1x_show_client_info_line.__doc__,
            parsing_opts.EMU_NS_GROUP,
            parsing_opts.MAC_ADDRESS,
            parsing_opts.EMU_DUMPS_OPT,
        )

        opts = parser.parse_args(line.split())

        ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
        c_key = EMUClientKey(ns_key, opts.mac)
        res = self.get_clients_info(c_key)

        if opts.json or opts.yaml:
            dump_json_yaml(data=res, to_json=opts.json, to_yaml=opts.yaml)
            return True

        keys_to_headers = [
            {
                'key': 'state',
                'header': 'State'
            },
            {
                'key': 'method',
                'header': 'Method'
            },
            {
                'key': 'eap_version',
                'header': 'EAP Version'
            },
        ]
        args = {
            'title': 'Dot1x Client Information',
            'empty_msg': 'No Dot1x information for client',
            'keys_to_headers': keys_to_headers
        }
        self.print_table_by_keys(data=res, **args)
        return True
Exemplo n.º 28
0
    def igmp_remove_mc_line(self, line):
        '''IGMP remove mc command\n'''
        parser = parsing_opts.gen_parser(self,
                                        "igmp_remove_mc",
                                        self.igmp_remove_mc_line.__doc__,
                                        parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                        parsing_opts.EMU_ALL_NS,
                                        parsing_opts.IPV4_START,
                                        parsing_opts.IPV4_COUNT,
                                        )

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.remove_gen_mc, ipv4_start = opts.ipv4_start, ipv4_count = opts.ipv4_count)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            res = self.remove_gen_mc(ns_key, ipv4_start = opts.ipv4_start, ipv4_count = opts.ipv4_count)
        return True
Exemplo n.º 29
0
    def ipv6_add_mld_line(self, line):
        '''IPV6 add mld command\n'''
        parser = parsing_opts.gen_parser(self,
                                        "ipv6_add_mld",
                                        self.ipv6_add_mld_line.__doc__,
                                        parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                        parsing_opts.EMU_ALL_NS,
                                        parsing_opts.IPV6_START,
                                        parsing_opts.IPV6_COUNT
                                        )

        opts = parser.parse_args(line.split())

        if opts.all_ns:
            self.run_on_all_ns(self.add_gen_mld, ipv6_start = opts.ipv6_start, ipv6_count = opts.ipv6_count)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            res = self.add_gen_mld(ns_key, ipv6_start = opts.ipv6_start, ipv6_count = opts.ipv6_count)
        return True
Exemplo n.º 30
0
    def igmp_show_mc_line(self, line):
        '''IGMP show mc command\n'''
        parser = parsing_opts.gen_parser(self,
                                        "igmp_show_mc",
                                        self.igmp_show_mc_line.__doc__,
                                        parsing_opts.EMU_NS_GROUP_NOT_REQ,
                                        parsing_opts.EMU_ALL_NS
                                        )

        opts = parser.parse_args(line.split())

        args = {'title': 'Current mc:', 'empty_msg': 'There are no mc in namespace'}
        if opts.all_ns:
            self.run_on_all_ns(self.iter_mc, print_ns_info = True, func_on_res = self.print_gen_data, func_on_res_args = args)
        else:
            self._validate_port(opts)
            ns_key = EMUNamespaceKey(opts.port, opts.vlan, opts.tpid)
            res = self.iter_mc(ns_key)
            self.print_gen_data(data = res, **args)
           
        return True