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
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
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
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
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
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)
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
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)
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
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)
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
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
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')
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)
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
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
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
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
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)
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)
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)
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
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
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
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
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
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
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
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
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