syntax = "proto3";
import "types.proto";
package NetworkAdapters;

// 网卡
message INetworkAdapter {
    option (interface) = 'bmc.kepler.Systems.NetworkAdapters';

    uint8 SystemID = 1 [(readonly) = true];
    uint8 SlotID = 2 [(readonly) = true];
    string Name = 3 [(readonly) = true];
    string Model = 4 [(readonly) = true];
    string Manufacturer = 5 [(readonly) = true];
    string ChipModel = 6 [(readonly) = true];
    string AssociatedResource = 7 [(readonly) = true];
    string BDF = 8 [(readonly) = true];
    uint8 Type = 9 [(readonly) = true];
}

message NetworkAdapter {
    option (path) = "/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID";

    INetworkAdapter NetworkAdapter = 1;
}

// 网络端口
message INetworkPort {
    option (interface) = 'bmc.kepler.Systems.NetworkPorts';

    uint8 PortID = 1;
    string Mac = 2;
    string ActualMac = 3;
    string AutoNeg = 4;
    // 端口统计信息
    string TotalBytesReceived = 11;
    string UnicastPacketsReceived = 12;
    string MulticastPacketsReceived = 13;
    string BroadcastPacketsReceived = 14;
    string FcsReceiveErrors = 15;
    string AlignmentErrors = 16;
    string RuntPacketsReceived = 17;
    string JabberPacketsReceived = 18;
    string TotalBytesTransmitted = 19;
    string UnicastPacketsTransmitted = 20;
    string MulticastPacketsTransmitted = 21;
    string BroadcastPacketsTransmitted = 22;
    string SingleCollisionTransmitFrames = 23;
    string MultipleCollisionTransmitFrames = 24;
    string LateCollisionFrames = 25;
    string ExcessiveCollisionFrames = 26;
    // DCB信息
    uint16 Pfcmap = 31;
    string Cos2up = 32;
    string UpPgid = 33;
    string Pgpct = 34;
    string Strict = 35;
}

message NetworkPort {
    option (path) = "/bmc/kepler/Systems/:SystemID/NetworkAdapters/:ID/NetworkPorts/:PortID";

    INetworkPort NetworkPort = 1;
}

