Beispiel #1
0
/*
 * Display current configuration parameters in a human readable format.
 */
void
display_config(struct mic_info *miclist)
{
	struct mic_info *mic;
	struct mbridge *br;
	char netmask[16];
	char micmac[64];
	char hostmac[64];
	int err = 0;
	int ret = 0;

	putchar('\n');
	mic = miclist;
	while (mic != NULL) {
		printf("%s:\n", mic->name);
		printf("=============================================================\n");

		if ((ret = micctrl_parse_config(&mpssenv, mic, &brlist, &mpssperr, PINFO))) {
			err++;

			if (ret < MIC_PARSE_ERRORS) {
				display(PERROR, "Not configured\n");
				goto nextmic;
			}
		}

		printf("    Config Version: %d.%d\n\n", (mic->config.version >> 16) & 0xff, mic->config.version & 0xff);
		printf("    Linux Kernel:   %s\n", check_set(mic->config.boot.osimage));
		printf("    Map File:       %s\n", check_set(mic->config.boot.systemmap));
		printf("    Family:         %s\n", family_to_str(mic->config.family));
		printf("    MPSSVersion:    %s\n", mpss_version_to_str(mic->config.mpss_version));

		printf("    BootOnStart:    %s\n",
			(mic->config.boot.onstart == TRUE)? "Enabled" : "Disabled");
		printf("    Shutdowntimeout: %s seconds\n", check_set(mic->config.misc.shutdowntimeout));

		printf("\n    ExtraCommandLine: %s\n", check_set(mic->config.boot.extraCmdline));
		printf("    PowerManagment: %s\n", check_set(mic->config.boot.pm));

		printf("\n    ");
		report_rootdev(mic);

		get_mac_strings(mic, micmac, hostmac, 64);

		switch (mic->config.net.type) {
		case NETWORK_TYPE_STATPAIR:
			printf("\n    Network:       Static Pair\n");
			printf("        Hostname:  %s\n", check_set(mic->config.net.hostname));
			printf("        MIC IP:    %s\n", check_set(mic->config.net.micIP));
			printf("        Host IP:   %s\n", check_set(mic->config.net.hostIP));

			if (mic->config.net.prefix == NULL)
				mic->config.net.prefix = "24";

			mpssnet_genmask(mic->config.net.prefix, netmask);
			printf("        Net Bits:  %s\n", check_set(mic->config.net.prefix));
			printf("        NetMask:   %s\n", netmask);

			if (mic->config.net.mtu)
				printf("        MtuSize:   %s\n", check_set(mic->config.net.mtu));

			break;

		case NETWORK_TYPE_STATBRIDGE:
			printf("\n    Network:       Static bridge %s\n", check_set(mic->config.net.bridge));
			printf("        MIC IP:    %s\n", check_set(mic->config.net.micIP));

			if ((br = mpss_bridge_byname(mic->config.net.bridge, brlist)) != NULL) {
				printf("        Host IP:   %s\n", check_set(br->ip));

				mpssnet_genmask(br->prefix, netmask);
				printf("        Net Bits:  %s\n", check_set(br->prefix));
				printf("        NetMask:   %s\n", netmask);
				printf("        MtuSize:   %s\n", check_set(br->mtu));
			}

			printf("        Hostname:  %s\n", check_set(mic->config.net.hostname));
			break;
		case NETWORK_TYPE_BRIDGE:
			printf("\n    Network:       Bridge %s with DHCP\n", check_set(mic->config.net.bridge));

			if ((br = mpss_bridge_byname(mic->config.net.bridge, brlist)) != NULL) {
				mpssnet_genmask(br->prefix, netmask);
				printf("        Net Bits:  %s\n", check_set(br->prefix));
				printf("        NetMask:   %s\n", netmask);
				printf("        MtuSize:   %s\n", check_set(br->mtu));
			}

			printf("        Hostname:  %s\n", check_set(mic->config.net.hostname));
			break;
		default:
			printf("%s: Unknown network configuration type\n", mic->name);
		}
		printf("        MIC MAC:   %s\n", micmac);
		printf("        Host MAC:  %s\n", hostmac);

		printf("\n    ");
		display_ldap(mic, TRUE);
		printf("     ");
		display_nis(mic, TRUE);

		printf("\n    Cgroup:\n");
		printf("        Memory:    %s\n", (mic->config.cgroup.memory == TRUE)? "Enabled" : "Disabled");

		printf("\n    Console:        %s\n", check_set(mic->config.boot.console));

		printf("    VerboseLogging: %s\n",
			(mic->config.boot.verbose == TRUE)? "Enabled" : "Disabled");

		if (mic->config.misc.crashdumpDir != NULL) 
			printf("    CrashDump:      %s %sGB\n", check_set(mic->config.misc.crashdumpDir),
								check_set(mic->config.misc.crashdumplimitgb));
		else
			printf("    CrashDump:      Not Enabled\n");
nextmic:
		putchar('\n');
		mic = mic->next;
	}

	exit(err);
}
Beispiel #2
0
static char *
get_rootdev(struct mic_info *mic, struct mbridge *brlist)
{
	char *cmdline = NULL;
	struct mbridge *br;
	char mtu[32];
	char netmask[32];
	char *netbits;

	switch (mic->config.rootdev.type) {
	case ROOT_TYPE_RAMFS:
	case ROOT_TYPE_STATICRAMFS:
		if ((cmdline = malloc(strlen("root=ramfs") + 1)) == NULL)
			return NULL;

		strcpy(cmdline, "root=ramfs");
		break;
	case ROOT_TYPE_PFS:
		if ((cmdline = malloc(strlen("root=/dev/vda") + 1)) == NULL)
			return NULL;
		strcpy(cmdline, "root=/dev/vda");
		break;

	case ROOT_TYPE_NFS:
	case ROOT_TYPE_SPLITNFS:
		if ((br = mpss_bridge_byname(mic->config.net.bridge, brlist)) != NULL) {
			if (br->mtu)
				snprintf(mtu, 31, " mtu=%s", br->mtu);
			else
				strcpy(mtu, " mtu=24");

			if (br->prefix)
				netbits = br->prefix;
			else
				netbits = "24";

		} else {
			netbits = "24";
			mtu[0] = '\0';
		}

		mpssnet_genmask(netbits, netmask);

		if ((cmdline = malloc(strlen(
			"root=nfs: ip=XXX.XXX.XXX.XXX hwaddr=00:00:00:00:00:00 netmask=ffffffff "
			"mtu=XXXXXX   ") + strlen(mic->config.rootdev.target))) == NULL)
			return NULL;


		sprintf(cmdline, "root=nfs:%s ip=%s netmask=%s %s", mic->config.rootdev.target,
				 mic->config.net.micIP, netmask, mtu);

		if (mic->config.net.hostMac > MIC_MAC_RANDOM) {
			strcat(cmdline, " hwaddr=");
			strcat(cmdline, mic->config.net.micMac);
		}

		break;
	}

	return cmdline;
}