Ejemplo n.º 1
0
void cli_show_hw_arp_cache(router_state *rs, cli_request *req) {

	if(rs->is_netfpga) {
		char *arp_info = 0;
		unsigned int len;

		sprint_hw_arp_cache(rs, &arp_info, &len);
		send_to_socket(req->sockfd, arp_info, len);
		free(arp_info);
	}
}
Ejemplo n.º 2
0
void cli_hw_info(router_state *rs, cli_request *req) {

	if(rs->is_netfpga) {
		char *info;
		unsigned int len;

		info = "HW STATS\n";
		send_to_socket(req->sockfd, info, strlen(info));

		sprint_hw_stats(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);

		info = "\nHW DROPS\n";
		send_to_socket(req->sockfd, info, strlen(info));

		sprint_hw_drops(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);

		sprint_hw_oq_drops(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);

		info = "\nHW IFACE INFO\n";
		send_to_socket(req->sockfd, info, strlen(info));

		sprint_hw_iface(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);

		info = "\nHW IP FILTERS INFO\n";
		send_to_socket(req->sockfd, info, strlen(info));

		sprint_hw_local_ip_filter(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);

		info = "\nHW RTABLE INFO\n";
		send_to_socket(req->sockfd, info, strlen(info));

		sprint_hw_rtable(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);


		info = "\nHW ARP CACHE INFO\n";
		send_to_socket(req->sockfd, info, strlen(info));

		sprint_hw_arp_cache(rs, &info, &len);
		send_to_socket(req->sockfd, info, len);
		free(info);

		unsigned int misses = 0;
       		readReg(&(rs->netfpga), ROUTER_OP_LUT_ARP_NUM_MISSES_REG, &misses);

	        info = (char *)calloc(80, sizeof(char));
	        snprintf(info, 80, "\nHW ARP CACHE MISSES: %d\n", misses);
	        send_to_socket(req->sockfd, info, strlen(info));
	        free(info);

		unsigned int number = 0;
                readReg(&(rs->netfpga), ROUTER_OP_LUT_NUM_PKTS_FORWARDED_REG, &number);

                info = (char *)calloc(80, sizeof(char));
                snprintf(info, 80, "HW NUMBER OF PACKETS FORWARDED: %d\n", number);
                send_to_socket(req->sockfd, info, strlen(info));
                free(info);

	}
}