Add files via upload

This commit is contained in:
Henrik
2025-02-08 23:29:16 +01:00
committed by GitHub
parent 1287ccf5c0
commit ecac6de2d2
2 changed files with 218 additions and 0 deletions

44
ShannonLteUeCap.proto Normal file
View File

@@ -0,0 +1,44 @@
syntax = "proto2";
message ShannonLteUECap {
// ShannonUECapLte version.
required uint32 version = 1;
// List of combos.
repeated Combo combos = 2;
// Unknown bitmask.
required uint32 bitmask = 3;
}
message Combo {
// List of Components.
repeated Component components = 1;
/*
The supportedBandwidthCombinationSet of this combo.
It's stored as a 32bit unsigned int, each of its bits has the same value of the corresponding
bit in the BitString. 0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcs = 2;
// Unknown bitmask.
required uint32 unknown1 = 3;
// Unknown bitmask.
required uint32 unknown2 = 4;
}
message Component {
// LTE Bands are stored as int
required int32 band = 1;
/*
First 8 bits encode mimo, second 8 bits encode bw class. Bw class is encoded setting to 1 the
bit representing the bw class index.
Ex. 1000 0000 = class A (index 0), 0100 0000 = class B (index 1), 00100 0000 = class C (index 2)
Mimo is encoded as enum, 0 -> 2, 1 -> 4
*/
required int32 bwClassMimoDl = 2;
/*
First 8 bits encode mimo, second 8 bits encode bw class. Bw class is encoded setting to 1 the
bit representing the bw class index.
Ex. 1000 0000 = class A (index 0), 0100 0000 = class B (index 1), 00100 0000 = class C (index 2)
Mimo is encoded as enum, 0 -> 1, 1 -> 2
*/
required int32 bwClassMimoUl = 3;
}

174
ShannonNrUeCap.proto Normal file
View File

@@ -0,0 +1,174 @@
syntax = "proto2";
message ShannonNrUECap {
// ShannonNrUECap version.
optional uint32 version = 1;
// ID assigned to this ShannonNrUECap.
optional int32 id = 2;
// List of combo groups.
repeated ComboGroup comboGroups = 3;
// List of FeatureSetDownlink.
repeated FeatureNr dlFeatureList = 4;
// List of FeatureSetUplink.
repeated FeatureNr ulFeatureList = 5;
// List of FeatureSetDownlinkPerCC.
repeated FeatureDlPerCCNr dlFeaturePerCCList = 6;
// List of FeatureSetUplinkPerCC.
repeated FeatureUlPerCCNr ulFeaturePerCCList = 7;
// Extra features
optional ExtraFeatures extraFeatures = 8;
// Integrity protection
optional uint32 integrity = 9;
}
message ComboGroup {
// Some features that applies to the whole combo group.
required ComboFeatures comboFeatures = 1;
// List of combos that share the same ComboFeatures.
repeated Combo combos = 2;
}
message FeatureNr {
// Intraband Freq Separation is stored as unsigned int
optional uint32 intrabandFreqSeparation = 1;
}
message FeatureDlPerCCNr {
// Max SCS is stored as numerology + 1, i.e. 1 = 15kHz, 2 = 30kHz, 3 = 60kHz, 4 = 120kHz.
required int32 maxScs = 1;
// Max Mimo is stored as an enum. 0 -> not supported, 1 -> 2, 2 -> 4.
required int32 maxMimo = 2;
// Max Bandwidth is stored as it's.
required uint32 maxBw = 3;
/*
Max Modulation Order is stored as an enum. 0 -> not supported, 1 -> QAM64, 2 -> QAM256.
Note that as TS 38 306 4.2.7.8 and 4.2.7.6, this doesn't specify the maximum (nor the minimum)
modulation supported.
*/
required int32 maxModOrder = 4;
// BW 90MHz supported is stored as boolean.
required bool bw90MHzSupported = 5;
}
message FeatureUlPerCCNr {
// Max SCS is stored as numerology + 1, i.e. 1 = 15kHz, 2 = 30kHz, 3 = 60kHz, 4 = 120kHz.
required int32 maxScs = 1;
// Max Mimo is stored as an enum. Max Mimo UL: 0 -> not supported, 1 -> 1, 2 -> 2.
required int32 maxMimo = 2;
// Max Bandwidth is stored as it's.
required int32 maxBw = 3;
/*
Max Modulation Order is stored as an enum. 0 -> not supported, 1 -> QAM64, 2 -> QAM256.
Note that as TS 38 306 4.2.7.8 and 4.2.7.6, this doesn't specify the maximum (nor the minimum)
modulation supported.
*/
required int32 maxModOrder = 4;
// BW 90MHz supported is stored as boolean.
required bool bw90MHzSupported = 5;
// MaxNumberSRS-ResourcePerSet is stored as unsigned int
required uint32 maxNumSRSResPerSet = 6;
}
message ExtraFeatures {
optional uint32 caParamEutraBitmap = 1;
optional uint32 caParamEutraSupportedNaics2CrSAp = 2;
optional uint32 caParamNrBitmap = 3;
optional uint32 caParamNrSimultaneousSrsAssocCsiRsAllCc = 4;
optional uint32 caParamNrMaxNumberSimultaneousNzpCsiRsActBwpAllCc = 5;
optional uint32 caParamNrTotalNumberPortsSimultaneousNzpCsiRsActBwpAllCc = 6;
optional uint32 caParamNrSimultaneousCsiReportsAllCc = 7;
optional uint32 caParamMrdcBitmap = 8;
optional uint32 caParamMrdcUlSharingEutraNr = 9;
optional uint32 caParamMrdcUlSwitchingTimeEutraNr = 10;
}
message ComboFeatures {
/*
The supportedBandwidthCombinationSet that applies to the Nr Components.
It's stored as a 32bit unsigned int, each of its bits has the same value of
the corresponding bit in the BitString.
0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcsNr = 1;
/*
The supportedBandwidthCombinationSet that applies to the IntraEnDc
Components (supportedBandwidthCombinationSetIntraENDC).
It's stored as a 32bit unsigned int, each of its bits has the same value of
the corresponding bit in the BitString.
0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcsIntraEndc = 2;
/*
The supported Bandwidth Combination Set that applies to the Eutra
Components (supportedBandwidthCombinationSetEUTRA-v1530).
It's stored as a 32bit unsigned int, each of its bits has the same value of
the corresponding bit in the BitString.
0 means default i.e. only BCS 0 supported (if applicable).
*/
optional uint32 bcsEutra = 3;
/*
Power Class of the whole combination, it's stored as an enum.
Note that this doesn't override the powerclass of the uplink bands.
For FR1 0 -> Default, 1 -> PC2, 2 -> PC1.5
For FR2 0 -> Default
*/
optional int32 powerClass = 4;
// IntraBandENDC-Support is stored as an enum. 0 -> contiguous, 1 -> non-contiguous, 2 -> both.
optional int32 intraBandEnDcSupport = 5;
// SupportedNumberTAG is stored as unsigned int.
optional uint32 supportedNumTag = 6;
}
message Combo {
// List of Components.
repeated Component components = 1;
// A bit mask stored as unsigned int that enables or disables this combo for specific SKUs.
required uint32 skuBitMask = 2;
}
message Component {
// LTE Bands are stored as they are, NR Bands are stored as band number + 10000.
required uint32 band = 1;
// BwClass DL is stored as ASCII value - 0x40. 0 means DL not supported.
required uint32 bwClassDl = 2;
// BwClass UL is stored as ASCII value - 0x40. 0 means UL not supported.
required uint32 bwClassUl = 3;
/*
For LTE this is FeatureSetEUTRA-DownlinkId, the corresponding FeatureSetDL-r15
seems to be hardcoded elsewhere (see ShannonFeatureSetEutra).
Note that the index starts from 1 as per 3GPP spec, 0 means DL not supported.
For NR this sets some features that applies to the whole component (not PerCC).
Empirically 1 -> FR1, 2 -> FR2.
*/
required uint32 dlFeatureIndex = 4;
/*
For LTE this is FeatureSetEUTRA-UplinkId, the corresponding FeatureSetUL-r15
seems to be hardcoded elsewhere (see ShannonFeatureSetEutra).
Note that the index starts from 1 as per 3GPP spec, 0 means UL not supported.
For NR this sets some features that applies to the whole component (not PerCC).
Empirically 1 -> 1 SRS port per resource, 2 -> 2 SRS ports per resource.
*/
required uint32 ulFeatureIndex = 5;
/*
This is a list of FeatureSetDownlinkPerCC-Id per each CC. This only applies to NR.
The corresponding FeatureSetDownlinkPerCC are stored in dlFeaturePerCCList.
Note that the index starts from 1 as per 3GPP spec, 0 means DL not supported.
*/
repeated uint32 dlFeaturePerCCIds = 6 [packed = true];
/*
This is a list of FeatureSetUplinkPerCC-Id per each CC. This only applies to NR.
The corresponding FeatureSetUplinkPerCC are stored in ulFeaturePerCCList.
Note that the index starts from 1 as per 3GPP spec, 0 means UL not supported.
*/
repeated uint32 ulFeaturePerCCIds = 7 [packed = true];
/*
SupportedSRS-TxPortSwitch is stored as enum.
1 -> t1r1, 2 -> t1r2, 3 -> t1r4, 4 -> t2r2, 5 -> t2r4, 6 -> t1r4-t2r4
*/
optional int32 srsTxSwitch = 8;
}