aboutsummaryrefslogtreecommitdiff
path: root/slirp
diff options
context:
space:
mode:
authorCédric Le Goater <clg@kaod.org>2018-05-30 08:10:34 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-05-31 21:19:24 +0200
commitb2d1678fa1733144826f582d28020da39372649f (patch)
treeb37cecf5e649be1c222abc83a5a3f203aba5c587 /slirp
parent551f84544edf80ae474255deac12a2f936379a14 (diff)
slirp/ncsi: add a "Get Parameters" response
Command 0x17 'Get Parameters' is used to get configuration parameter values currently in effect on the controller and it is mandatory in the NS-CI specification. Provide a minimum response to exercise the kernel. Signed-off-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'slirp')
-rw-r--r--slirp/ncsi.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/slirp/ncsi.c b/slirp/ncsi.c
index 02d0e9def3..7b3fff207a 100644
--- a/slirp/ncsi.c
+++ b/slirp/ncsi.c
@@ -35,6 +35,20 @@ static int ncsi_rsp_handler_gls(struct ncsi_rsp_pkt_hdr *rnh)
return 0;
}
+/* Get Parameters */
+static int ncsi_rsp_handler_gp(struct ncsi_rsp_pkt_hdr *rnh)
+{
+ struct ncsi_rsp_gp_pkt *rsp = (struct ncsi_rsp_gp_pkt *) rnh;
+
+ /* no MAC address filters or VLAN filters on the channel */
+ rsp->mac_cnt = 0;
+ rsp->mac_enable = 0;
+ rsp->vlan_cnt = 0;
+ rsp->vlan_enable = 0;
+
+ return 0;
+}
+
static const struct ncsi_rsp_handler {
unsigned char type;
int payload;
@@ -62,7 +76,7 @@ static const struct ncsi_rsp_handler {
{ NCSI_PKT_RSP_SNFC, 4, NULL },
{ NCSI_PKT_RSP_GVI, 40, NULL },
{ NCSI_PKT_RSP_GC, 32, ncsi_rsp_handler_gc },
- { NCSI_PKT_RSP_GP, -1, NULL },
+ { NCSI_PKT_RSP_GP, 40, ncsi_rsp_handler_gp },
{ NCSI_PKT_RSP_GCPS, 172, NULL },
{ NCSI_PKT_RSP_GNS, 172, NULL },
{ NCSI_PKT_RSP_GNPTS, 172, NULL },