VirtualBox

Ignore:
Timestamp:
Feb 25, 2011 12:21:57 PM (14 years ago)
Author:
vboxsync
Message:

Added a promiscModePolicy attribute to INetworkAdapter, three values: deny (default), allow-network (i.e. VMs), allow-all (i.e. include unrelated host traffic).

Location:
trunk/src/VBox/Frontends/VBoxManage
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r35858 r36082  
    207207                     "                            [--nicspeed<1-N> <kbps>]\n"
    208208                     "                            [--nicbootprio<1-N> <priority>]\n"
     209                     "                            [--nicpromisc<1-N> deny|allow-vms|allow-all]\n"
    209210                     "                            [--bridgeadapter<1-N> none|<devicename>]\n"
    210211#if defined(VBOX_WITH_NETFLT)
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r35967 r36082  
    849849                            strAttachment = "none";
    850850                        break;
     851
    851852                    case NetworkAttachmentType_NAT:
    852853                    {
     
    946947                        break;
    947948                    }
     949
    948950                    case NetworkAttachmentType_Bridged:
    949951                    {
     
    959961                        break;
    960962                    }
     963
    961964                    case NetworkAttachmentType_Internal:
    962965                    {
     
    972975                        break;
    973976                    }
     977
    974978#if defined(VBOX_WITH_NETFLT)
    975979                    case NetworkAttachmentType_HostOnly:
     
    10111015                nic->COMGETTER(CableConnected)(&fConnected);
    10121016
     1017                /* promisc policy */
     1018                NetworkAdapterPromiscModePolicy_T enmPromiscModePolicy;
     1019                CHECK_ERROR2_RET(nic, COMGETTER(PromiscModePolicy)(&enmPromiscModePolicy), hrcCheck);
     1020                const char *pszPromiscuousGuestPolicy;
     1021                switch (enmPromiscModePolicy)
     1022                {
     1023                    case NetworkAdapterPromiscModePolicy_Deny:          pszPromiscuousGuestPolicy = "deny"; break;
     1024                    case NetworkAdapterPromiscModePolicy_AllowNetwork:  pszPromiscuousGuestPolicy = "allow-vms"; break;
     1025                    case NetworkAdapterPromiscModePolicy_AllowAll:      pszPromiscuousGuestPolicy = "allow-all"; break;
     1026                    default: AssertFailedReturn(VERR_INTERNAL_ERROR_4);
     1027                }
     1028
    10131029                /* trace stuff */
    10141030                BOOL fTraceEnabled;
     
    10181034
    10191035                /* NIC type */
    1020                 Utf8Str strNICType;
    10211036                NetworkAdapterType_T NICType;
    10221037                nic->COMGETTER(AdapterType)(&NICType);
    1023                 switch (NICType) {
    1024                 case NetworkAdapterType_Am79C970A:
    1025                     strNICType = "Am79C970A";
    1026                     break;
    1027                 case NetworkAdapterType_Am79C973:
    1028                     strNICType = "Am79C973";
    1029                     break;
     1038                const char *pszNICType;
     1039                switch (NICType)
     1040                {
     1041                    case NetworkAdapterType_Am79C970A:  pszNICType = "Am79C970A";   break;
     1042                    case NetworkAdapterType_Am79C973:   pszNICType = "Am79C973";    break;
    10301043#ifdef VBOX_WITH_E1000
    1031                 case NetworkAdapterType_I82540EM:
    1032                     strNICType = "82540EM";
    1033                     break;
    1034                 case NetworkAdapterType_I82543GC:
    1035                     strNICType = "82543GC";
    1036                     break;
    1037                 case NetworkAdapterType_I82545EM:
    1038                     strNICType = "82545EM";
    1039                     break;
     1044                    case NetworkAdapterType_I82540EM:   pszNICType = "82540EM";     break;
     1045                    case NetworkAdapterType_I82543GC:   pszNICType = "82543GC";     break;
     1046                    case NetworkAdapterType_I82545EM:   pszNICType = "82545EM";     break;
    10401047#endif
    10411048#ifdef VBOX_WITH_VIRTIO
    1042                 case NetworkAdapterType_Virtio:
    1043                     strNICType = "virtio";
    1044                     break;
    1045 #endif /* VBOX_WITH_VIRTIO */
    1046                 default:
    1047                     strNICType = "unknown";
    1048                     break;
     1049                    case NetworkAdapterType_Virtio:     pszNICType = "virtio";      break;
     1050#endif
     1051                    default: AssertFailed();            pszNICType = "unknown";     break;
    10491052                }
    10501053
     
    10641067                }
    10651068                else
    1066                     RTPrintf("NIC %d:           MAC: %lS, Attachment: %s, Cable connected: %s, Trace: %s (file: %lS), Type: %s, Reported speed: %d Mbps, Boot priority: %d\n",
     1069                    RTPrintf("NIC %u:           MAC: %lS, Attachment: %s, Cable connected: %s, Trace: %s (file: %lS), Type: %s, Reported speed: %d Mbps, Boot priority: %d, Promisc Policy: %s\n",
    10671070                             currentNIC + 1, strMACAddress.raw(), strAttachment.c_str(),
    10681071                             fConnected ? "on" : "off",
    10691072                             fTraceEnabled ? "on" : "off",
    10701073                             traceFile.isEmpty() ? Bstr("none").raw() : traceFile.raw(),
    1071                              strNICType.c_str(),
     1074                             pszNICType,
    10721075                             ulLineSpeed / 1000,
    1073                              (int)ulBootPriority);
     1076                             (int)ulBootPriority,
     1077                             pszPromiscuousGuestPolicy);
    10741078                if (strNatSettings.length())
    10751079                    RTPrintf(strNatSettings.c_str());
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r35761 r36082  
    104104    MODIFYVM_NICSPEED,
    105105    MODIFYVM_NICBOOTPRIO,
     106    MODIFYVM_NICPROMISC,
    106107    MODIFYVM_NIC,
    107108    MODIFYVM_CABLECONNECTED,
     
    230231    { "--nicspeed",                 MODIFYVM_NICSPEED,                  RTGETOPT_REQ_UINT32 | RTGETOPT_FLAG_INDEX },
    231232    { "--nicbootprio",              MODIFYVM_NICBOOTPRIO,               RTGETOPT_REQ_UINT32 | RTGETOPT_FLAG_INDEX },
     233    { "--nicpromisc",               MODIFYVM_NICPROMISC,                RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
    232234    { "--nic",                      MODIFYVM_NIC,                       RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
    233235    { "--cableconnected",           MODIFYVM_CABLECONNECTED,            RTGETOPT_REQ_BOOL_ONOFF | RTGETOPT_FLAG_INDEX },
     
    10821084            }
    10831085
     1086            case MODIFYVM_NICPROMISC:
     1087            {
     1088                NetworkAdapterPromiscModePolicy_T enmPromiscModePolicy;
     1089                if (!strcmp(ValueUnion.psz, "deny"))
     1090                    enmPromiscModePolicy = NetworkAdapterPromiscModePolicy_Deny;
     1091                else if (   !strcmp(ValueUnion.psz, "allow-vms")
     1092                         || !strcmp(ValueUnion.psz, "allow-network"))
     1093                    enmPromiscModePolicy = NetworkAdapterPromiscModePolicy_AllowNetwork;
     1094                else if (!strcmp(ValueUnion.psz, "allow-all"))
     1095                    enmPromiscModePolicy = NetworkAdapterPromiscModePolicy_AllowAll;
     1096                else
     1097                {
     1098                    errorArgument("Unknown promiscuous mode policy '%s'", ValueUnion.psz);
     1099                    rc = E_INVALIDARG;
     1100                    break;
     1101                }
     1102
     1103                ComPtr<INetworkAdapter> nic;
     1104                CHECK_ERROR_BREAK(machine, GetNetworkAdapter(GetOptState.uIndex - 1, nic.asOutParam()));
     1105                ASSERT(nic);
     1106
     1107                CHECK_ERROR(nic, COMSETTER(PromiscModePolicy)(enmPromiscModePolicy));
     1108                break;
     1109            }
     1110
    10841111            case MODIFYVM_NIC:
    10851112            {
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette