socsvn commit: r307225 - soc2016/vincenzo/head/usr.sbin/bhyve
vincenzo at FreeBSD.org
vincenzo at FreeBSD.org
Fri Aug 5 14:00:30 UTC 2016
Author: vincenzo
Date: Fri Aug 5 14:00:27 2016
New Revision: 307225
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=307225
Log:
bhyve: ptnet: export net_genmac() function
Modified:
soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.c
soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.h
soc2016/vincenzo/head/usr.sbin/bhyve/pci_ptnetmap_netif.c
soc2016/vincenzo/head/usr.sbin/bhyve/pci_virtio_net.c
Modified: soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.c
==============================================================================
--- soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.c Fri Aug 5 13:53:28 2016 (r307224)
+++ soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.c Fri Aug 5 14:00:27 2016 (r307225)
@@ -1078,6 +1078,13 @@
return ret;
}
+/*
+ * Some utils functions, which should go in a separate module.
+ */
+#include <md5.h>
+#include "pci_emul.h"
+#include "bhyverun.h"
+
int
net_parsemac(char *mac_str, uint8_t *mac_addr)
{
@@ -1100,3 +1107,29 @@
return (0);
}
+
+void
+net_genmac(struct pci_devinst *pi, uint8_t *macaddr)
+{
+ /*
+ * The default MAC address is the standard NetApp OUI of 00-a0-98,
+ * followed by an MD5 of the PCI slot/func number and dev name
+ */
+ MD5_CTX mdctx;
+ unsigned char digest[16];
+ char nstr[80];
+
+ snprintf(nstr, sizeof(nstr), "%d-%d-%s", pi->pi_slot,
+ pi->pi_func, vmname);
+
+ MD5Init(&mdctx);
+ MD5Update(&mdctx, nstr, strlen(nstr));
+ MD5Final(digest, &mdctx);
+
+ macaddr[0] = 0x00;
+ macaddr[1] = 0xa0;
+ macaddr[2] = 0x98;
+ macaddr[3] = digest[0];
+ macaddr[4] = digest[1];
+ macaddr[5] = digest[2];
+}
Modified: soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.h
==============================================================================
--- soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.h Fri Aug 5 13:53:28 2016 (r307224)
+++ soc2016/vincenzo/head/usr.sbin/bhyve/net_backends.h Fri Aug 5 14:00:27 2016 (r307225)
@@ -117,6 +117,9 @@
struct ptnetmap_state * get_ptnetmap(struct net_backend *be);
int ptn_memdev_attach(void *mem_ptr, uint32_t mem_size, uint16_t mem_id);
+
+#include "pci_emul.h"
int net_parsemac(char *mac_str, uint8_t *mac_addr);
+void net_genmac(struct pci_devinst *pi, uint8_t *macaddr);
#endif /* __NET_BACKENDS_H__ */
Modified: soc2016/vincenzo/head/usr.sbin/bhyve/pci_ptnetmap_netif.c
==============================================================================
--- soc2016/vincenzo/head/usr.sbin/bhyve/pci_ptnetmap_netif.c Fri Aug 5 13:53:28 2016 (r307224)
+++ soc2016/vincenzo/head/usr.sbin/bhyve/pci_ptnetmap_netif.c Fri Aug 5 14:00:27 2016 (r307225)
@@ -164,6 +164,10 @@
free(devname);
}
+ if (!mac_provided) {
+ net_genmac(pi, macaddr);
+ }
+
sc->ptbe = get_ptnetmap(sc->be);
/* Initialize PCI configuration space. */
Modified: soc2016/vincenzo/head/usr.sbin/bhyve/pci_virtio_net.c
==============================================================================
--- soc2016/vincenzo/head/usr.sbin/bhyve/pci_virtio_net.c Fri Aug 5 13:53:28 2016 (r307224)
+++ soc2016/vincenzo/head/usr.sbin/bhyve/pci_virtio_net.c Fri Aug 5 14:00:27 2016 (r307225)
@@ -50,7 +50,6 @@
#include <strings.h>
#include <unistd.h>
#include <assert.h>
-#include <md5.h>
#include <pthread.h>
#include <pthread_np.h>
@@ -415,9 +414,6 @@
static int
pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts)
{
- MD5_CTX mdctx;
- unsigned char digest[16];
- char nstr[80];
char tname[MAXCOMLEN + 1];
struct pci_vtnet_softc *sc;
char *devname;
@@ -478,24 +474,8 @@
free(devname);
}
- /*
- * The default MAC address is the standard NetApp OUI of 00-a0-98,
- * followed by an MD5 of the PCI slot/func number and dev name
- */
if (!mac_provided) {
- snprintf(nstr, sizeof(nstr), "%d-%d-%s", pi->pi_slot,
- pi->pi_func, vmname);
-
- MD5Init(&mdctx);
- MD5Update(&mdctx, nstr, strlen(nstr));
- MD5Final(digest, &mdctx);
-
- sc->vsc_config.mac[0] = 0x00;
- sc->vsc_config.mac[1] = 0xa0;
- sc->vsc_config.mac[2] = 0x98;
- sc->vsc_config.mac[3] = digest[0];
- sc->vsc_config.mac[4] = digest[1];
- sc->vsc_config.mac[5] = digest[2];
+ net_genmac(pi, sc->vsc_config.mac);
}
/* initialize config space */
More information about the svn-soc-all
mailing list