All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hunt <david.hunt@intel.com>
To: dev@dpdk.org
Cc: konstantin.ananyev@intel.com, jingjing.wu@intel.com,
	santosh.shukla@caviumnetworks.com, "Sexton,
	Rory" <rory.sexton@intel.com>,
	Nemanja Marjanovic <nemanja.marjanovic@intel.com>,
	David Hunt <david.hunt@intel.com>
Subject: [PATCH v6 8/9] examples/guest_cli: add send policy to host
Date: Thu,  5 Oct 2017 13:25:49 +0100	[thread overview]
Message-ID: <1507206350-215367-9-git-send-email-david.hunt@intel.com> (raw)
In-Reply-To: <1507206350-215367-1-git-send-email-david.hunt@intel.com>

From: "Sexton, Rory" <rory.sexton@intel.com>

Here we're adding an example of setting up a policy, and allowing the
vm_cli_guest app to send it to the host using the cli command
"send_policy now"

Signed-off-by: Nemanja Marjanovic <nemanja.marjanovic@intel.com>
Signed-off-by: Rory Sexton <rory.sexton@intel.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
---
 .../guest_cli/vm_power_cli_guest.c                 | 97 ++++++++++++++++++++++
 .../guest_cli/vm_power_cli_guest.h                 |  6 --
 2 files changed, 97 insertions(+), 6 deletions(-)

diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
index 4e982bd..dc9efc2 100644
--- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
+++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
@@ -45,8 +45,10 @@
 #include <cmdline.h>
 #include <rte_log.h>
 #include <rte_lcore.h>
+#include <rte_ethdev.h>
 
 #include <rte_power.h>
+#include <guest_channel.h>
 
 #include "vm_power_cli_guest.h"
 
@@ -139,8 +141,103 @@ cmdline_parse_inst_t cmd_set_cpu_freq_set = {
 	},
 };
 
+struct cmd_send_policy_result {
+	cmdline_fixed_string_t send_policy;
+	cmdline_fixed_string_t cmd;
+};
+
+union PFID {
+	struct ether_addr addr;
+	uint64_t pfid;
+};
+
+static inline int
+send_policy(void)
+{
+	struct channel_packet pkt;
+	int ret;
+
+	union PFID pfid;
+	/* Use port MAC address as the vfid */
+	rte_eth_macaddr_get(0, &pfid.addr);
+	printf("Port %u MAC: %02" PRIx8 ":%02" PRIx8 ":%02" PRIx8 ":"
+			"%02" PRIx8 ":%02" PRIx8 ":%02" PRIx8 "\n",
+			1,
+			pfid.addr.addr_bytes[0], pfid.addr.addr_bytes[1],
+			pfid.addr.addr_bytes[2], pfid.addr.addr_bytes[3],
+			pfid.addr.addr_bytes[4], pfid.addr.addr_bytes[5]);
+	pkt.vfid[0] = pfid.pfid;
+
+	pkt.nb_mac_to_monitor = 1;
+	pkt.t_boost_status.tbEnabled = false;
+
+	pkt.vcpu_to_control[0] = 0;
+	pkt.vcpu_to_control[1] = 1;
+	pkt.num_vcpu = 2;
+	/* Dummy Population. */
+	pkt.traffic_policy.min_packet_thresh = 96000;
+	pkt.traffic_policy.avg_max_packet_thresh = 1800000;
+	pkt.traffic_policy.max_max_packet_thresh = 2000000;
+
+	pkt.timer_policy.busy_hours[0] = 3;
+	pkt.timer_policy.busy_hours[1] = 4;
+	pkt.timer_policy.busy_hours[2] = 5;
+	pkt.timer_policy.quiet_hours[0] = 11;
+	pkt.timer_policy.quiet_hours[1] = 12;
+	pkt.timer_policy.quiet_hours[2] = 13;
+
+	pkt.timer_policy.hours_to_use_traffic_profile[0] = 8;
+	pkt.timer_policy.hours_to_use_traffic_profile[1] = 10;
+
+	pkt.workload = LOW;
+	pkt.policy_to_use = TIME;
+	pkt.command = PKT_POLICY;
+	strcpy(pkt.vm_name, "ubuntu2");
+	ret = rte_power_guest_channel_send_msg(&pkt, 1);
+	if (ret == 0)
+		return 1;
+	RTE_LOG(DEBUG, POWER, "Error sending message: %s\n",
+			ret > 0 ? strerror(ret) : "channel not connected");
+	return -1;
+}
+
+static void
+cmd_send_policy_parsed(void *parsed_result, struct cmdline *cl,
+		       __attribute__((unused)) void *data)
+{
+	int ret = -1;
+	struct cmd_send_policy_result *res = parsed_result;
+
+	if (!strcmp(res->cmd, "now")) {
+		printf("Sending Policy down now!\n");
+		ret = send_policy();
+	}
+	if (ret != 1)
+		cmdline_printf(cl, "Error sending message: %s\n",
+				strerror(ret));
+}
+
+cmdline_parse_token_string_t cmd_send_policy =
+	TOKEN_STRING_INITIALIZER(struct cmd_send_policy_result,
+			send_policy, "send_policy");
+cmdline_parse_token_string_t cmd_send_policy_cmd_cmd =
+	TOKEN_STRING_INITIALIZER(struct cmd_send_policy_result,
+			cmd, "now");
+
+cmdline_parse_inst_t cmd_send_policy_set = {
+	.f = cmd_send_policy_parsed,
+	.data = NULL,
+	.help_str = "send_policy now",
+	.tokens = {
+		(void *)&cmd_send_policy,
+		(void *)&cmd_send_policy_cmd_cmd,
+		NULL,
+	},
+};
+
 cmdline_parse_ctx_t main_ctx[] = {
 		(cmdline_parse_inst_t *)&cmd_quit,
+		(cmdline_parse_inst_t *)&cmd_send_policy_set,
 		(cmdline_parse_inst_t *)&cmd_set_cpu_freq_set,
 		NULL,
 };
diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h
index 0c4bdd5..277eab3 100644
--- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h
+++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h
@@ -40,12 +40,6 @@ extern "C" {
 
 #include "channel_commands.h"
 
-int guest_channel_host_connect(unsigned lcore_id);
-
-int guest_channel_send_msg(struct channel_packet *pkt, unsigned lcore_id);
-
-void guest_channel_host_disconnect(unsigned lcore_id);
-
 void run_cli(__attribute__((unused)) void *arg);
 
 #ifdef __cplusplus
-- 
2.7.4

  parent reply	other threads:[~2017-10-05 12:28 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-25 16:02 [PATCH v1 0/10] Policy Based Power Control for Guest David Hunt
2017-08-25 16:02 ` [PATCH v1 01/10] net/i40e: add API to convert VF Id to PF Id David Hunt
2017-09-22  9:56   ` Thomas Monjalon
2017-09-22 12:39     ` Hunt, David
2017-09-25  2:43   ` Wu, Jingjing
2017-09-25  9:57     ` Hunt, David
2017-08-25 16:02 ` [PATCH v1 02/10] net/i40e: add API to get received packet count David Hunt
2017-09-25  2:47   ` Wu, Jingjing
2017-09-25  9:59     ` Hunt, David
2017-08-25 16:02 ` [PATCH v1 03/10] lib/librte_power: add extra msg type for policies David Hunt
2017-08-25 16:02 ` [PATCH v1 04/10] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-08-25 16:02 ` [PATCH v1 05/10] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-08-25 16:02 ` [PATCH v1 06/10] examples/vm_power_mgr: add policy to channels David Hunt
2017-08-25 16:02 ` [PATCH v1 07/10] examples/vm_power_mgr: add port initialisation David Hunt
2017-08-25 16:02 ` [PATCH v1 08/10] examples/guest_cli: add send policy to host David Hunt
2017-08-25 16:02 ` [PATCH v1 09/10] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-08-25 16:02 ` [PATCH v1 10/10] net/i40e: set register for no drop David Hunt
2017-09-25  2:50   ` Wu, Jingjing
2017-09-25  9:44     ` Hunt, David
2017-08-29 13:03 ` [PATCH v1 0/10] Policy Based Power Control for Guest Ananyev, Konstantin
2017-09-22  9:51   ` Thomas Monjalon
2017-09-22 10:28     ` Hunt, David
2017-09-22 13:03       ` Thomas Monjalon
2017-09-22 13:12         ` Hunt, David
2017-09-25 12:27 ` [PATCH v2] " David Hunt
2017-09-25 12:27   ` [PATCH v2 1/8] net/i40e: add API to convert VF MAC to VSI index David Hunt
2017-09-26 14:04     ` Wu, Jingjing
2017-09-25 12:27   ` [PATCH v2 2/8] lib/librte_power: add extra msg type for policies David Hunt
2017-09-25 12:27   ` [PATCH v2 3/8] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-09-25 12:27   ` [PATCH v2 4/8] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-09-25 12:27   ` [PATCH v2 5/8] examples/vm_power_mgr: add policy to channels David Hunt
2017-09-25 12:27   ` [PATCH v2 6/8] examples/vm_power_mgr: add port initialisation David Hunt
2017-09-25 12:27   ` [PATCH v2 7/8] examples/guest_cli: add send policy to host David Hunt
2017-09-25 12:27   ` [PATCH v2 8/8] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-04  9:15   ` [PATCH v4] Policy Based Power Control for Guest David Hunt
2017-10-04  9:15     ` [PATCH v4 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-04 15:26       ` santosh
2017-10-04  9:15     ` [PATCH v4 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-04 15:36       ` santosh
2017-10-05  8:38         ` Hunt, David
2017-10-05  9:21           ` santosh
2017-10-05  9:51             ` Hunt, David
2017-10-04  9:15     ` [PATCH v4 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-04  9:15     ` [PATCH v4 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-04  9:15     ` [PATCH v4 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-04  9:15     ` [PATCH v4 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-04  9:15     ` [PATCH v4 7/9] power: add send channel msg function to map file David Hunt
2017-10-04  9:15     ` [PATCH v4 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-04  9:15     ` [PATCH v4 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-04 15:25     ` [PATCH v5 0/9] Policy Based Power Control for Guest David Hunt
2017-10-04 15:25       ` [PATCH v5 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-04 15:41         ` santosh
2017-10-05  8:31           ` Hunt, David
2017-10-05  9:22             ` santosh
2017-10-04 15:25       ` [PATCH v5 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-04 15:47         ` santosh
2017-10-05  8:41           ` Hunt, David
2017-10-04 15:25       ` [PATCH v5 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-04 15:58         ` santosh
2017-10-05  8:44           ` Hunt, David
2017-10-04 15:25       ` [PATCH v5 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-04 16:04         ` santosh
2017-10-05  8:47           ` Hunt, David
2017-10-05  9:07             ` santosh
2017-10-04 15:25       ` [PATCH v5 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-04 15:25       ` [PATCH v5 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-04 15:25       ` [PATCH v5 7/9] power: add send channel msg function to map file David Hunt
2017-10-04 16:20         ` santosh
2017-10-04 15:25       ` [PATCH v5 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-04 15:25       ` [PATCH v5 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-05 12:25       ` [PATCH v6 0/9] Policy Based Power Control for Guest David Hunt
2017-10-05 12:25         ` [PATCH v6 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-05 12:45           ` Ananyev, Konstantin
2017-10-05 12:51             ` Hunt, David
2017-10-05 12:25         ` [PATCH v6 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-05 12:25         ` [PATCH v6 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-05 12:25         ` [PATCH v6 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-05 12:25         ` [PATCH v6 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-05 12:25         ` [PATCH v6 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-05 12:25         ` [PATCH v6 7/9] power: add send channel msg function to map file David Hunt
2017-10-05 12:25         ` David Hunt [this message]
2017-10-05 12:25         ` [PATCH v6 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-05 13:28         ` [PATCH v7 0/9] Policy Based Power Control for Guest David Hunt
2017-10-05 13:28           ` [PATCH v7 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-05 13:28           ` [PATCH v7 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-05 13:28           ` [PATCH v7 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-05 13:28           ` [PATCH v7 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-05 13:28           ` [PATCH v7 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-05 13:28           ` [PATCH v7 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-05 13:28           ` [PATCH v7 7/9] power: add send channel msg function to map file David Hunt
2017-10-05 13:28           ` [PATCH v7 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-05 13:28           ` [PATCH v7 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-05 13:54           ` [PATCH v7 0/9] Policy Based Power Control for Guest Ananyev, Konstantin
2017-10-05 14:12           ` santosh
2017-10-05 14:34           ` [PATCH v8 " David Hunt
2017-10-05 14:34             ` [PATCH v8 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-05 14:34             ` [PATCH v8 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-05 14:34             ` [PATCH v8 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-05 14:34             ` [PATCH v8 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-05 14:34             ` [PATCH v8 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-05 14:34             ` [PATCH v8 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-05 14:34             ` [PATCH v8 7/9] power: add send channel msg function to map file David Hunt
2017-10-05 14:34             ` [PATCH v8 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-05 14:34             ` [PATCH v8 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-09 22:34             ` [PATCH v8 0/9] Policy Based Power Control for Guest Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1507206350-215367-9-git-send-email-david.hunt@intel.com \
    --to=david.hunt@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=nemanja.marjanovic@intel.com \
    --cc=rory.sexton@intel.com \
    --cc=santosh.shukla@caviumnetworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.