[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/4] slirp: Add mfr-id to -netdev options
|
From: |
Peter Delevoryas |
|
Subject: |
[PATCH 3/4] slirp: Add mfr-id to -netdev options |
|
Date: |
Wed, 15 Jun 2022 18:05:25 -0700 |
This lets you set the manufacturer's ID for a slirp netdev, which can be
queried from the guest through the Get Version ID NC-SI command. For
example, by setting the manufacturer's ID to 0x8119:
wget
https://github.com/facebook/openbmc/releases/download/openbmc-e2294ff5d31d/fby35.mtd
qemu-system-arm -machine fby35-bmc \
-drive file=fby35.mtd,format=raw,if=mtd -nographic \
-netdev user,id=nic,mfr-id=0x8119,hostfwd=::2222-:22 \
-net nic,model=ftgmac100,netdev=nic
...
username: root
password: 0penBmc
...
root@bmc-oob:~# ncsi-util 0x15
NC-SI Command Response:
cmd: GET_VERSION_ID(0x15)
Response: COMMAND_COMPLETED(0x0000) Reason: NO_ERROR(0x0000)
Payload length = 40
20: 0xf1 0xf0 0xf0 0x00
24: 0x00 0x00 0x00 0x00
28: 0x00 0x00 0x00 0x00
32: 0x00 0x00 0x00 0x00
36: 0x00 0x00 0x00 0x00
40: 0x00 0x00 0x00 0x00
44: 0x00 0x00 0x00 0x00
48: 0x00 0x00 0x00 0x00
52: 0x00 0x00 0x81 0x19
Signed-off-by: Peter Delevoryas <pdel@fb.com>
---
net/slirp.c | 5 +++--
qapi/net.json | 5 ++++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/net/slirp.c b/net/slirp.c
index 75e5ccafd9..231068c1e2 100644
--- a/net/slirp.c
+++ b/net/slirp.c
@@ -413,7 +413,7 @@ static int net_slirp_init(NetClientState *peer, const char
*model,
const char *vnameserver, const char *vnameserver6,
const char *smb_export, const char *vsmbserver,
const char **dnssearch, const char *vdomainname,
- const char *tftp_server_name,
+ const char *tftp_server_name, uint32_t mfr_id,
Error **errp)
{
/* default settings according to historic slirp */
@@ -636,6 +636,7 @@ static int net_slirp_init(NetClientState *peer, const char
*model,
cfg.vnameserver6 = ip6_dns;
cfg.vdnssearch = dnssearch;
cfg.vdomainname = vdomainname;
+ cfg.mfr_id = mfr_id;
s->slirp = slirp_new(&cfg, &slirp_cb, s);
QTAILQ_INSERT_TAIL(&slirp_stacks, s, entry);
@@ -1172,7 +1173,7 @@ int net_init_slirp(const Netdev *netdev, const char *name,
user->bootfile, user->dhcpstart,
user->dns, user->ipv6_dns, user->smb,
user->smbserver, dnssearch, user->domainname,
- user->tftp_server_name, errp);
+ user->tftp_server_name, user->mfr_id, errp);
while (slirp_configs) {
config = slirp_configs;
diff --git a/qapi/net.json b/qapi/net.json
index d6f7cfd4d6..efc5cb3fb6 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -167,6 +167,8 @@
#
# @tftp-server-name: RFC2132 "TFTP server name" string (Since 3.1)
#
+# @mfr-id: Manufacturer ID (Private Enterprise Number: IANA)
+#
# Since: 1.2
##
{ 'struct': 'NetdevUserOptions',
@@ -192,7 +194,8 @@
'*smbserver': 'str',
'*hostfwd': ['String'],
'*guestfwd': ['String'],
- '*tftp-server-name': 'str' } }
+ '*tftp-server-name': 'str',
+ '*mfr-id': 'uint32' } }
##
# @NetdevTapOptions:
--
2.30.2