blob: b2ed3a3a181c85dcc4a27eebc7d2fa0daad0eb9d [file] [log] [blame]
slowr13fa5b02017-08-08 16:32:31 -07001/**
2 * This class file was automatically generated by jASN1 v1.8.0 (http://www.openmuc.org)
3 */
4
5package org.onosproject.xran.codecs.pdu;
6
7import java.io.IOException;
8import java.io.EOFException;
9import java.io.InputStream;
10import java.util.List;
11import java.util.ArrayList;
12import java.util.Iterator;
13import java.io.UnsupportedEncodingException;
14import java.math.BigInteger;
15import java.io.Serializable;
16
slowr60d4d102017-08-16 18:33:58 -070017import com.fasterxml.jackson.annotation.JsonIgnore;
18import com.fasterxml.jackson.annotation.JsonValue;
slowr13fa5b02017-08-08 16:32:31 -070019import org.onosproject.xran.codecs.api.CRNTI;
20import org.onosproject.xran.codecs.api.ECGI;
21import org.onosproject.xran.codecs.api.QCI;
slowr60d4d102017-08-16 18:33:58 -070022import org.onosproject.xran.codecs.ber.*;
23import org.onosproject.xran.codecs.ber.types.*;
24import org.onosproject.xran.codecs.ber.types.string.*;
slowr13fa5b02017-08-08 16:32:31 -070025
26
27
28public class PDCPMeasReportPerUe implements Serializable {
29
30 private static final long serialVersionUID = 1L;
31
32 public static class QciVals implements Serializable {
33
34 private static final long serialVersionUID = 1L;
35
36 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -070037 @JsonIgnore
slowr13fa5b02017-08-08 16:32:31 -070038 public byte[] code = null;
39 private List<QCI> seqOf = null;
40
41 public QciVals() {
42 seqOf = new ArrayList<QCI>();
43 }
44
45 public QciVals(byte[] code) {
46 this.code = code;
47 }
48
slowr60d4d102017-08-16 18:33:58 -070049 @JsonValue
slowr13fa5b02017-08-08 16:32:31 -070050 public List<QCI> getQCI() {
51 if (seqOf == null) {
52 seqOf = new ArrayList<QCI>();
53 }
54 return seqOf;
55 }
56
57 public int encode(BerByteArrayOutputStream os) throws IOException {
58 return encode(os, true);
59 }
60
61 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
62
63 if (code != null) {
64 for (int i = code.length - 1; i >= 0; i--) {
65 os.write(code[i]);
66 }
67 if (withTag) {
68 return tag.encode(os) + code.length;
69 }
70 return code.length;
71 }
72
73 int codeLength = 0;
74 for (int i = (seqOf.size() - 1); i >= 0; i--) {
75 codeLength += seqOf.get(i).encode(os, true);
76 }
77
78 codeLength += BerLength.encodeLength(os, codeLength);
79
80 if (withTag) {
81 codeLength += tag.encode(os);
82 }
83
84 return codeLength;
85 }
86
87 public int decode(InputStream is) throws IOException {
88 return decode(is, true);
89 }
90
91 public int decode(InputStream is, boolean withTag) throws IOException {
92 int codeLength = 0;
93 int subCodeLength = 0;
94 if (withTag) {
95 codeLength += tag.decodeAndCheck(is);
96 }
97
98 BerLength length = new BerLength();
99 codeLength += length.decode(is);
100 int totalLength = length.val;
101
102 while (subCodeLength < totalLength) {
103 QCI element = new QCI();
104 subCodeLength += element.decode(is, true);
105 seqOf.add(element);
106 }
107 if (subCodeLength != totalLength) {
108 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
109
110 }
111 codeLength += subCodeLength;
112
113 return codeLength;
114 }
115
116 public void encodeAndSave(int encodingSizeGuess) throws IOException {
117 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
118 encode(os, false);
119 code = os.getArray();
120 }
121
122 public String toString() {
123 StringBuilder sb = new StringBuilder();
124 appendAsString(sb, 0);
125 return sb.toString();
126 }
127
128 public void appendAsString(StringBuilder sb, int indentLevel) {
129
130 sb.append("[\n");
131 for (int i = 0; i < indentLevel + 1; i++) {
132 sb.append("\t");
133 }
134 if (seqOf == null) {
135// sb.append("null");
136 }
137 else {
138 Iterator<QCI> it = seqOf.iterator();
139 if (it.hasNext()) {
140 sb.append(it.next());
141 while (it.hasNext()) {
142 sb.append(",\n");
143 for (int i = 0; i < indentLevel + 1; i++) {
144 sb.append("\t");
145 }
146 sb.append(it.next());
147 }
148 }
149 }
150
151 sb.append("\n");
152 for (int i = 0; i < indentLevel; i++) {
153 sb.append("\t");
154 }
155 sb.append("]");
156 }
157
158 public void setQCI(QCI qci) {
159 seqOf.add(qci);
160 }
161 }
162
163 public static class DataVolDl implements Serializable {
164
165 private static final long serialVersionUID = 1L;
166
167 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700168 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700169 private List<BerInteger> seqOf = null;
170
171 public DataVolDl() {
172 seqOf = new ArrayList<BerInteger>();
173 }
174
175 public DataVolDl(byte[] code) {
176 this.code = code;
177 }
178
slowr60d4d102017-08-16 18:33:58 -0700179 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700180 if (seqOf == null) {
181 seqOf = new ArrayList<BerInteger>();
182 }
183 return seqOf;
184 }
185
186 public int encode(BerByteArrayOutputStream os) throws IOException {
187 return encode(os, true);
188 }
189
190 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
191
192 if (code != null) {
193 for (int i = code.length - 1; i >= 0; i--) {
194 os.write(code[i]);
195 }
196 if (withTag) {
197 return tag.encode(os) + code.length;
198 }
199 return code.length;
200 }
201
202 int codeLength = 0;
203 for (int i = (seqOf.size() - 1); i >= 0; i--) {
204 codeLength += seqOf.get(i).encode(os, true);
205 }
206
207 codeLength += BerLength.encodeLength(os, codeLength);
208
209 if (withTag) {
210 codeLength += tag.encode(os);
211 }
212
213 return codeLength;
214 }
215
216 public int decode(InputStream is) throws IOException {
217 return decode(is, true);
218 }
219
220 public int decode(InputStream is, boolean withTag) throws IOException {
221 int codeLength = 0;
222 int subCodeLength = 0;
223 if (withTag) {
224 codeLength += tag.decodeAndCheck(is);
225 }
226
227 BerLength length = new BerLength();
228 codeLength += length.decode(is);
229 int totalLength = length.val;
230
231 while (subCodeLength < totalLength) {
232 BerInteger element = new BerInteger();
233 subCodeLength += element.decode(is, true);
234 seqOf.add(element);
235 }
236 if (subCodeLength != totalLength) {
237 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
238
239 }
240 codeLength += subCodeLength;
241
242 return codeLength;
243 }
244
245 public void encodeAndSave(int encodingSizeGuess) throws IOException {
246 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
247 encode(os, false);
248 code = os.getArray();
249 }
250
251 public String toString() {
252 StringBuilder sb = new StringBuilder();
253 appendAsString(sb, 0);
254 return sb.toString();
255 }
256
257 public void appendAsString(StringBuilder sb, int indentLevel) {
258
259 sb.append("[\n");
260 for (int i = 0; i < indentLevel + 1; i++) {
261 sb.append("\t");
262 }
263 if (seqOf == null) {
264// sb.append("null");
265 }
266 else {
267 Iterator<BerInteger> it = seqOf.iterator();
268 if (it.hasNext()) {
269 sb.append(it.next());
270 while (it.hasNext()) {
271 sb.append(",\n");
272 for (int i = 0; i < indentLevel + 1; i++) {
273 sb.append("\t");
274 }
275 sb.append(it.next());
276 }
277 }
278 }
279
280 sb.append("\n");
281 for (int i = 0; i < indentLevel; i++) {
282 sb.append("\t");
283 }
284 sb.append("]");
285 }
286
287 public void setBerInteger(BerInteger berInteger) {
288 seqOf.add(berInteger);
289 }
290 }
291
292 public static class DataVolUl implements Serializable {
293
294 private static final long serialVersionUID = 1L;
295
296 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700297 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700298 private List<BerInteger> seqOf = null;
299
300 public DataVolUl() {
301 seqOf = new ArrayList<BerInteger>();
302 }
303
304 public DataVolUl(byte[] code) {
305 this.code = code;
306 }
307
slowr60d4d102017-08-16 18:33:58 -0700308 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700309 if (seqOf == null) {
310 seqOf = new ArrayList<BerInteger>();
311 }
312 return seqOf;
313 }
314
315 public int encode(BerByteArrayOutputStream os) throws IOException {
316 return encode(os, true);
317 }
318
319 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
320
321 if (code != null) {
322 for (int i = code.length - 1; i >= 0; i--) {
323 os.write(code[i]);
324 }
325 if (withTag) {
326 return tag.encode(os) + code.length;
327 }
328 return code.length;
329 }
330
331 int codeLength = 0;
332 for (int i = (seqOf.size() - 1); i >= 0; i--) {
333 codeLength += seqOf.get(i).encode(os, true);
334 }
335
336 codeLength += BerLength.encodeLength(os, codeLength);
337
338 if (withTag) {
339 codeLength += tag.encode(os);
340 }
341
342 return codeLength;
343 }
344
345 public int decode(InputStream is) throws IOException {
346 return decode(is, true);
347 }
348
349 public int decode(InputStream is, boolean withTag) throws IOException {
350 int codeLength = 0;
351 int subCodeLength = 0;
352 if (withTag) {
353 codeLength += tag.decodeAndCheck(is);
354 }
355
356 BerLength length = new BerLength();
357 codeLength += length.decode(is);
358 int totalLength = length.val;
359
360 while (subCodeLength < totalLength) {
361 BerInteger element = new BerInteger();
362 subCodeLength += element.decode(is, true);
363 seqOf.add(element);
364 }
365 if (subCodeLength != totalLength) {
366 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
367
368 }
369 codeLength += subCodeLength;
370
371 return codeLength;
372 }
373
374 public void encodeAndSave(int encodingSizeGuess) throws IOException {
375 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
376 encode(os, false);
377 code = os.getArray();
378 }
379
380 public String toString() {
381 StringBuilder sb = new StringBuilder();
382 appendAsString(sb, 0);
383 return sb.toString();
384 }
385
386 public void appendAsString(StringBuilder sb, int indentLevel) {
387
388 sb.append("[\n");
389 for (int i = 0; i < indentLevel + 1; i++) {
390 sb.append("\t");
391 }
392 if (seqOf == null) {
393// sb.append("null");
394 }
395 else {
396 Iterator<BerInteger> it = seqOf.iterator();
397 if (it.hasNext()) {
398 sb.append(it.next());
399 while (it.hasNext()) {
400 sb.append(",\n");
401 for (int i = 0; i < indentLevel + 1; i++) {
402 sb.append("\t");
403 }
404 sb.append(it.next());
405 }
406 }
407 }
408
409 sb.append("\n");
410 for (int i = 0; i < indentLevel; i++) {
411 sb.append("\t");
412 }
413 sb.append("]");
414 }
415
416 public void setBerInteger(BerInteger berInteger) {
417 seqOf.add(berInteger);
418 }
419 }
420
421 public static class PktDelayDl implements Serializable {
422
423 private static final long serialVersionUID = 1L;
424
425 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700426 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700427 private List<BerInteger> seqOf = null;
428
429 public PktDelayDl() {
430 seqOf = new ArrayList<BerInteger>();
431 }
432
433 public PktDelayDl(byte[] code) {
434 this.code = code;
435 }
436
slowr60d4d102017-08-16 18:33:58 -0700437 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700438 if (seqOf == null) {
439 seqOf = new ArrayList<BerInteger>();
440 }
441 return seqOf;
442 }
443
444 public int encode(BerByteArrayOutputStream os) throws IOException {
445 return encode(os, true);
446 }
447
448 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
449
450 if (code != null) {
451 for (int i = code.length - 1; i >= 0; i--) {
452 os.write(code[i]);
453 }
454 if (withTag) {
455 return tag.encode(os) + code.length;
456 }
457 return code.length;
458 }
459
460 int codeLength = 0;
461 for (int i = (seqOf.size() - 1); i >= 0; i--) {
462 codeLength += seqOf.get(i).encode(os, true);
463 }
464
465 codeLength += BerLength.encodeLength(os, codeLength);
466
467 if (withTag) {
468 codeLength += tag.encode(os);
469 }
470
471 return codeLength;
472 }
473
474 public int decode(InputStream is) throws IOException {
475 return decode(is, true);
476 }
477
478 public int decode(InputStream is, boolean withTag) throws IOException {
479 int codeLength = 0;
480 int subCodeLength = 0;
481 if (withTag) {
482 codeLength += tag.decodeAndCheck(is);
483 }
484
485 BerLength length = new BerLength();
486 codeLength += length.decode(is);
487 int totalLength = length.val;
488
489 while (subCodeLength < totalLength) {
490 BerInteger element = new BerInteger();
491 subCodeLength += element.decode(is, true);
492 seqOf.add(element);
493 }
494 if (subCodeLength != totalLength) {
495 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
496
497 }
498 codeLength += subCodeLength;
499
500 return codeLength;
501 }
502
503 public void encodeAndSave(int encodingSizeGuess) throws IOException {
504 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
505 encode(os, false);
506 code = os.getArray();
507 }
508
509 public String toString() {
510 StringBuilder sb = new StringBuilder();
511 appendAsString(sb, 0);
512 return sb.toString();
513 }
514
515 public void appendAsString(StringBuilder sb, int indentLevel) {
516
517 sb.append("[\n");
518 for (int i = 0; i < indentLevel + 1; i++) {
519 sb.append("\t");
520 }
521 if (seqOf == null) {
522// sb.append("null");
523 }
524 else {
525 Iterator<BerInteger> it = seqOf.iterator();
526 if (it.hasNext()) {
527 sb.append(it.next());
528 while (it.hasNext()) {
529 sb.append(",\n");
530 for (int i = 0; i < indentLevel + 1; i++) {
531 sb.append("\t");
532 }
533 sb.append(it.next());
534 }
535 }
536 }
537
538 sb.append("\n");
539 for (int i = 0; i < indentLevel; i++) {
540 sb.append("\t");
541 }
542 sb.append("]");
543 }
544
545 public void setBerInteger(BerInteger berInteger) {
546 seqOf.add(berInteger);
547 }
548 }
549
550 public static class PktDelayUl implements Serializable {
551
552 private static final long serialVersionUID = 1L;
553
554 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700555 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700556 private List<BerInteger> seqOf = null;
557
558 public PktDelayUl() {
559 seqOf = new ArrayList<BerInteger>();
560 }
561
562 public PktDelayUl(byte[] code) {
563 this.code = code;
564 }
565
slowr60d4d102017-08-16 18:33:58 -0700566 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700567 if (seqOf == null) {
568 seqOf = new ArrayList<BerInteger>();
569 }
570 return seqOf;
571 }
572
573 public int encode(BerByteArrayOutputStream os) throws IOException {
574 return encode(os, true);
575 }
576
577 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
578
579 if (code != null) {
580 for (int i = code.length - 1; i >= 0; i--) {
581 os.write(code[i]);
582 }
583 if (withTag) {
584 return tag.encode(os) + code.length;
585 }
586 return code.length;
587 }
588
589 int codeLength = 0;
590 for (int i = (seqOf.size() - 1); i >= 0; i--) {
591 codeLength += seqOf.get(i).encode(os, true);
592 }
593
594 codeLength += BerLength.encodeLength(os, codeLength);
595
596 if (withTag) {
597 codeLength += tag.encode(os);
598 }
599
600 return codeLength;
601 }
602
603 public int decode(InputStream is) throws IOException {
604 return decode(is, true);
605 }
606
607 public int decode(InputStream is, boolean withTag) throws IOException {
608 int codeLength = 0;
609 int subCodeLength = 0;
610 if (withTag) {
611 codeLength += tag.decodeAndCheck(is);
612 }
613
614 BerLength length = new BerLength();
615 codeLength += length.decode(is);
616 int totalLength = length.val;
617
618 while (subCodeLength < totalLength) {
619 BerInteger element = new BerInteger();
620 subCodeLength += element.decode(is, true);
621 seqOf.add(element);
622 }
623 if (subCodeLength != totalLength) {
624 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
625
626 }
627 codeLength += subCodeLength;
628
629 return codeLength;
630 }
631
632 public void encodeAndSave(int encodingSizeGuess) throws IOException {
633 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
634 encode(os, false);
635 code = os.getArray();
636 }
637
638 public String toString() {
639 StringBuilder sb = new StringBuilder();
640 appendAsString(sb, 0);
641 return sb.toString();
642 }
643
644 public void appendAsString(StringBuilder sb, int indentLevel) {
645
646 sb.append("[\n");
647 for (int i = 0; i < indentLevel + 1; i++) {
648 sb.append("\t");
649 }
650 if (seqOf == null) {
651// sb.append("null");
652 }
653 else {
654 Iterator<BerInteger> it = seqOf.iterator();
655 if (it.hasNext()) {
656 sb.append(it.next());
657 while (it.hasNext()) {
658 sb.append(",\n");
659 for (int i = 0; i < indentLevel + 1; i++) {
660 sb.append("\t");
661 }
662 sb.append(it.next());
663 }
664 }
665 }
666
667 sb.append("\n");
668 for (int i = 0; i < indentLevel; i++) {
669 sb.append("\t");
670 }
671 sb.append("]");
672 }
673
674 public void setBerInteger(BerInteger berInteger) {
675 seqOf.add(berInteger);
676 }
677 }
678
679 public static class PktDiscardRateDl implements Serializable {
680
681 private static final long serialVersionUID = 1L;
682
683 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700684 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700685 private List<BerInteger> seqOf = null;
686
687 public PktDiscardRateDl() {
688 seqOf = new ArrayList<BerInteger>();
689 }
690
691 public PktDiscardRateDl(byte[] code) {
692 this.code = code;
693 }
694
slowr60d4d102017-08-16 18:33:58 -0700695 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700696 if (seqOf == null) {
697 seqOf = new ArrayList<BerInteger>();
698 }
699 return seqOf;
700 }
701
702 public int encode(BerByteArrayOutputStream os) throws IOException {
703 return encode(os, true);
704 }
705
706 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
707
708 if (code != null) {
709 for (int i = code.length - 1; i >= 0; i--) {
710 os.write(code[i]);
711 }
712 if (withTag) {
713 return tag.encode(os) + code.length;
714 }
715 return code.length;
716 }
717
718 int codeLength = 0;
719 for (int i = (seqOf.size() - 1); i >= 0; i--) {
720 codeLength += seqOf.get(i).encode(os, true);
721 }
722
723 codeLength += BerLength.encodeLength(os, codeLength);
724
725 if (withTag) {
726 codeLength += tag.encode(os);
727 }
728
729 return codeLength;
730 }
731
732 public int decode(InputStream is) throws IOException {
733 return decode(is, true);
734 }
735
736 public int decode(InputStream is, boolean withTag) throws IOException {
737 int codeLength = 0;
738 int subCodeLength = 0;
739 if (withTag) {
740 codeLength += tag.decodeAndCheck(is);
741 }
742
743 BerLength length = new BerLength();
744 codeLength += length.decode(is);
745 int totalLength = length.val;
746
747 while (subCodeLength < totalLength) {
748 BerInteger element = new BerInteger();
749 subCodeLength += element.decode(is, true);
750 seqOf.add(element);
751 }
752 if (subCodeLength != totalLength) {
753 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
754
755 }
756 codeLength += subCodeLength;
757
758 return codeLength;
759 }
760
761 public void encodeAndSave(int encodingSizeGuess) throws IOException {
762 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
763 encode(os, false);
764 code = os.getArray();
765 }
766
767 public String toString() {
768 StringBuilder sb = new StringBuilder();
769 appendAsString(sb, 0);
770 return sb.toString();
771 }
772
773 public void appendAsString(StringBuilder sb, int indentLevel) {
774
775 sb.append("[\n");
776 for (int i = 0; i < indentLevel + 1; i++) {
777 sb.append("\t");
778 }
779 if (seqOf == null) {
780// sb.append("null");
781 }
782 else {
783 Iterator<BerInteger> it = seqOf.iterator();
784 if (it.hasNext()) {
785 sb.append(it.next());
786 while (it.hasNext()) {
787 sb.append(",\n");
788 for (int i = 0; i < indentLevel + 1; i++) {
789 sb.append("\t");
790 }
791 sb.append(it.next());
792 }
793 }
794 }
795
796 sb.append("\n");
797 for (int i = 0; i < indentLevel; i++) {
798 sb.append("\t");
799 }
800 sb.append("]");
801 }
802
803 public void setBerInteger(BerInteger berInteger) {
804 seqOf.add(berInteger);
805 }
806 }
807
808 public static class PktLossRateDl implements Serializable {
809
810 private static final long serialVersionUID = 1L;
811
812 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700813 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700814 private List<BerInteger> seqOf = null;
815
816 public PktLossRateDl() {
817 seqOf = new ArrayList<BerInteger>();
818 }
819
820 public PktLossRateDl(byte[] code) {
821 this.code = code;
822 }
823
slowr60d4d102017-08-16 18:33:58 -0700824 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700825 if (seqOf == null) {
826 seqOf = new ArrayList<BerInteger>();
827 }
828 return seqOf;
829 }
830
831 public int encode(BerByteArrayOutputStream os) throws IOException {
832 return encode(os, true);
833 }
834
835 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
836
837 if (code != null) {
838 for (int i = code.length - 1; i >= 0; i--) {
839 os.write(code[i]);
840 }
841 if (withTag) {
842 return tag.encode(os) + code.length;
843 }
844 return code.length;
845 }
846
847 int codeLength = 0;
848 for (int i = (seqOf.size() - 1); i >= 0; i--) {
849 codeLength += seqOf.get(i).encode(os, true);
850 }
851
852 codeLength += BerLength.encodeLength(os, codeLength);
853
854 if (withTag) {
855 codeLength += tag.encode(os);
856 }
857
858 return codeLength;
859 }
860
861 public int decode(InputStream is) throws IOException {
862 return decode(is, true);
863 }
864
865 public int decode(InputStream is, boolean withTag) throws IOException {
866 int codeLength = 0;
867 int subCodeLength = 0;
868 if (withTag) {
869 codeLength += tag.decodeAndCheck(is);
870 }
871
872 BerLength length = new BerLength();
873 codeLength += length.decode(is);
874 int totalLength = length.val;
875
876 while (subCodeLength < totalLength) {
877 BerInteger element = new BerInteger();
878 subCodeLength += element.decode(is, true);
879 seqOf.add(element);
880 }
881 if (subCodeLength != totalLength) {
882 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
883
884 }
885 codeLength += subCodeLength;
886
887 return codeLength;
888 }
889
890 public void encodeAndSave(int encodingSizeGuess) throws IOException {
891 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
892 encode(os, false);
893 code = os.getArray();
894 }
895
896 public String toString() {
897 StringBuilder sb = new StringBuilder();
898 appendAsString(sb, 0);
899 return sb.toString();
900 }
901
902 public void appendAsString(StringBuilder sb, int indentLevel) {
903
904 sb.append("[\n");
905 for (int i = 0; i < indentLevel + 1; i++) {
906 sb.append("\t");
907 }
908 if (seqOf == null) {
909// sb.append("null");
910 }
911 else {
912 Iterator<BerInteger> it = seqOf.iterator();
913 if (it.hasNext()) {
914 sb.append(it.next());
915 while (it.hasNext()) {
916 sb.append(",\n");
917 for (int i = 0; i < indentLevel + 1; i++) {
918 sb.append("\t");
919 }
920 sb.append(it.next());
921 }
922 }
923 }
924
925 sb.append("\n");
926 for (int i = 0; i < indentLevel; i++) {
927 sb.append("\t");
928 }
929 sb.append("]");
930 }
931
932 public void setBerInteger(BerInteger berInteger) {
933 seqOf.add(berInteger);
934 }
935 }
936
937 public static class PktLossRateUl implements Serializable {
938
939 private static final long serialVersionUID = 1L;
940
941 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -0700942 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -0700943 private List<BerInteger> seqOf = null;
944
945 public PktLossRateUl() {
946 seqOf = new ArrayList<BerInteger>();
947 }
948
949 public PktLossRateUl(byte[] code) {
950 this.code = code;
951 }
952
slowr60d4d102017-08-16 18:33:58 -0700953 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -0700954 if (seqOf == null) {
955 seqOf = new ArrayList<BerInteger>();
956 }
957 return seqOf;
958 }
959
960 public int encode(BerByteArrayOutputStream os) throws IOException {
961 return encode(os, true);
962 }
963
964 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
965
966 if (code != null) {
967 for (int i = code.length - 1; i >= 0; i--) {
968 os.write(code[i]);
969 }
970 if (withTag) {
971 return tag.encode(os) + code.length;
972 }
973 return code.length;
974 }
975
976 int codeLength = 0;
977 for (int i = (seqOf.size() - 1); i >= 0; i--) {
978 codeLength += seqOf.get(i).encode(os, true);
979 }
980
981 codeLength += BerLength.encodeLength(os, codeLength);
982
983 if (withTag) {
984 codeLength += tag.encode(os);
985 }
986
987 return codeLength;
988 }
989
990 public int decode(InputStream is) throws IOException {
991 return decode(is, true);
992 }
993
994 public int decode(InputStream is, boolean withTag) throws IOException {
995 int codeLength = 0;
996 int subCodeLength = 0;
997 if (withTag) {
998 codeLength += tag.decodeAndCheck(is);
999 }
1000
1001 BerLength length = new BerLength();
1002 codeLength += length.decode(is);
1003 int totalLength = length.val;
1004
1005 while (subCodeLength < totalLength) {
1006 BerInteger element = new BerInteger();
1007 subCodeLength += element.decode(is, true);
1008 seqOf.add(element);
1009 }
1010 if (subCodeLength != totalLength) {
1011 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
1012
1013 }
1014 codeLength += subCodeLength;
1015
1016 return codeLength;
1017 }
1018
1019 public void encodeAndSave(int encodingSizeGuess) throws IOException {
1020 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
1021 encode(os, false);
1022 code = os.getArray();
1023 }
1024
1025 public String toString() {
1026 StringBuilder sb = new StringBuilder();
1027 appendAsString(sb, 0);
1028 return sb.toString();
1029 }
1030
1031 public void appendAsString(StringBuilder sb, int indentLevel) {
1032
1033 sb.append("[\n");
1034 for (int i = 0; i < indentLevel + 1; i++) {
1035 sb.append("\t");
1036 }
1037 if (seqOf == null) {
1038// sb.append("null");
1039 }
1040 else {
1041 Iterator<BerInteger> it = seqOf.iterator();
1042 if (it.hasNext()) {
1043 sb.append(it.next());
1044 while (it.hasNext()) {
1045 sb.append(",\n");
1046 for (int i = 0; i < indentLevel + 1; i++) {
1047 sb.append("\t");
1048 }
1049 sb.append(it.next());
1050 }
1051 }
1052 }
1053
1054 sb.append("\n");
1055 for (int i = 0; i < indentLevel; i++) {
1056 sb.append("\t");
1057 }
1058 sb.append("]");
1059 }
1060
1061 public void setBerInteger(BerInteger berInteger) {
1062 seqOf.add(berInteger);
1063 }
1064 }
1065
1066 public static class ThroughputDl implements Serializable {
1067
1068 private static final long serialVersionUID = 1L;
1069
1070 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -07001071 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -07001072 private List<BerInteger> seqOf = null;
1073
1074 public ThroughputDl() {
1075 seqOf = new ArrayList<BerInteger>();
1076 }
1077
1078 public ThroughputDl(byte[] code) {
1079 this.code = code;
1080 }
1081
slowr60d4d102017-08-16 18:33:58 -07001082 @JsonValue public List<BerInteger> getBerInteger() {
slowr13fa5b02017-08-08 16:32:31 -07001083 if (seqOf == null) {
1084 seqOf = new ArrayList<BerInteger>();
1085 }
1086 return seqOf;
1087 }
1088
1089 public int encode(BerByteArrayOutputStream os) throws IOException {
1090 return encode(os, true);
1091 }
1092
1093 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
1094
1095 if (code != null) {
1096 for (int i = code.length - 1; i >= 0; i--) {
1097 os.write(code[i]);
1098 }
1099 if (withTag) {
1100 return tag.encode(os) + code.length;
1101 }
1102 return code.length;
1103 }
1104
1105 int codeLength = 0;
1106 for (int i = (seqOf.size() - 1); i >= 0; i--) {
1107 codeLength += seqOf.get(i).encode(os, true);
1108 }
1109
1110 codeLength += BerLength.encodeLength(os, codeLength);
1111
1112 if (withTag) {
1113 codeLength += tag.encode(os);
1114 }
1115
1116 return codeLength;
1117 }
1118
1119 public int decode(InputStream is) throws IOException {
1120 return decode(is, true);
1121 }
1122
1123 public int decode(InputStream is, boolean withTag) throws IOException {
1124 int codeLength = 0;
1125 int subCodeLength = 0;
1126 if (withTag) {
1127 codeLength += tag.decodeAndCheck(is);
1128 }
1129
1130 BerLength length = new BerLength();
1131 codeLength += length.decode(is);
1132 int totalLength = length.val;
1133
1134 while (subCodeLength < totalLength) {
1135 BerInteger element = new BerInteger();
1136 subCodeLength += element.decode(is, true);
1137 seqOf.add(element);
1138 }
1139 if (subCodeLength != totalLength) {
1140 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
1141
1142 }
1143 codeLength += subCodeLength;
1144
1145 return codeLength;
1146 }
1147
1148 public void encodeAndSave(int encodingSizeGuess) throws IOException {
1149 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
1150 encode(os, false);
1151 code = os.getArray();
1152 }
1153
1154 public String toString() {
1155 StringBuilder sb = new StringBuilder();
1156 appendAsString(sb, 0);
1157 return sb.toString();
1158 }
1159
1160 public void appendAsString(StringBuilder sb, int indentLevel) {
1161
1162 sb.append("[\n");
1163 for (int i = 0; i < indentLevel + 1; i++) {
1164 sb.append("\t");
1165 }
1166 if (seqOf == null) {
1167// sb.append("null");
1168 }
1169 else {
1170 Iterator<BerInteger> it = seqOf.iterator();
1171 if (it.hasNext()) {
1172 sb.append(it.next());
1173 while (it.hasNext()) {
1174 sb.append(",\n");
1175 for (int i = 0; i < indentLevel + 1; i++) {
1176 sb.append("\t");
1177 }
1178 sb.append(it.next());
1179 }
1180 }
1181 }
1182
1183 sb.append("\n");
1184 for (int i = 0; i < indentLevel; i++) {
1185 sb.append("\t");
1186 }
1187 sb.append("]");
1188 }
1189
1190 public void setBerInteger(BerInteger berInteger) {
1191 seqOf.add(berInteger);
1192 }
1193 }
1194
1195 public static class ThroughputUl implements Serializable {
1196
1197 private static final long serialVersionUID = 1L;
1198
1199 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
slowr60d4d102017-08-16 18:33:58 -07001200 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -07001201 private List<BerInteger> seqOf = null;
1202
1203 public ThroughputUl() {
1204 seqOf = new ArrayList<BerInteger>();
1205 }
1206
1207 public ThroughputUl(byte[] code) {
1208 this.code = code;
1209 }
1210
slowr60d4d102017-08-16 18:33:58 -07001211 @JsonValue
slowr13fa5b02017-08-08 16:32:31 -07001212 public List<BerInteger> getBerInteger() {
1213 if (seqOf == null) {
1214 seqOf = new ArrayList<BerInteger>();
1215 }
1216 return seqOf;
1217 }
1218
1219 public int encode(BerByteArrayOutputStream os) throws IOException {
1220 return encode(os, true);
1221 }
1222
1223 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
1224
1225 if (code != null) {
1226 for (int i = code.length - 1; i >= 0; i--) {
1227 os.write(code[i]);
1228 }
1229 if (withTag) {
1230 return tag.encode(os) + code.length;
1231 }
1232 return code.length;
1233 }
1234
1235 int codeLength = 0;
1236 for (int i = (seqOf.size() - 1); i >= 0; i--) {
1237 codeLength += seqOf.get(i).encode(os, true);
1238 }
1239
1240 codeLength += BerLength.encodeLength(os, codeLength);
1241
1242 if (withTag) {
1243 codeLength += tag.encode(os);
1244 }
1245
1246 return codeLength;
1247 }
1248
1249 public int decode(InputStream is) throws IOException {
1250 return decode(is, true);
1251 }
1252
1253 public int decode(InputStream is, boolean withTag) throws IOException {
1254 int codeLength = 0;
1255 int subCodeLength = 0;
1256 if (withTag) {
1257 codeLength += tag.decodeAndCheck(is);
1258 }
1259
1260 BerLength length = new BerLength();
1261 codeLength += length.decode(is);
1262 int totalLength = length.val;
1263
1264 while (subCodeLength < totalLength) {
1265 BerInteger element = new BerInteger();
1266 subCodeLength += element.decode(is, true);
1267 seqOf.add(element);
1268 }
1269 if (subCodeLength != totalLength) {
1270 throw new IOException("Decoded SequenceOf or SetOf has wrong length. Expected " + totalLength + " but has " + subCodeLength);
1271
1272 }
1273 codeLength += subCodeLength;
1274
1275 return codeLength;
1276 }
1277
1278 public void encodeAndSave(int encodingSizeGuess) throws IOException {
1279 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
1280 encode(os, false);
1281 code = os.getArray();
1282 }
1283
1284 public String toString() {
1285 StringBuilder sb = new StringBuilder();
1286 appendAsString(sb, 0);
1287 return sb.toString();
1288 }
1289
1290 public void appendAsString(StringBuilder sb, int indentLevel) {
1291
1292 sb.append("[\n");
1293 for (int i = 0; i < indentLevel + 1; i++) {
1294 sb.append("\t");
1295 }
1296 if (seqOf == null) {
1297// sb.append("null");
1298 }
1299 else {
1300 Iterator<BerInteger> it = seqOf.iterator();
1301 if (it.hasNext()) {
1302 sb.append(it.next());
1303 while (it.hasNext()) {
1304 sb.append(",\n");
1305 for (int i = 0; i < indentLevel + 1; i++) {
1306 sb.append("\t");
1307 }
1308 sb.append(it.next());
1309 }
1310 }
1311 }
1312
1313 sb.append("\n");
1314 for (int i = 0; i < indentLevel; i++) {
1315 sb.append("\t");
1316 }
1317 sb.append("]");
1318 }
1319
1320 public void setBerInteger(BerInteger berInteger) {
1321 seqOf.add(berInteger);
1322 }
1323 }
1324
1325 public static final BerTag tag = new BerTag(BerTag.UNIVERSAL_CLASS, BerTag.CONSTRUCTED, 16);
1326
slowr60d4d102017-08-16 18:33:58 -07001327 @JsonIgnore public byte[] code = null;
slowr13fa5b02017-08-08 16:32:31 -07001328 private ECGI ecgi = null;
1329 private CRNTI crnti = null;
1330 private QciVals qciVals = null;
1331 private DataVolDl dataVolDl = null;
1332 private DataVolUl dataVolUl = null;
1333 private PktDelayDl pktDelayDl = null;
1334 private PktDelayUl pktDelayUl = null;
1335 private PktDiscardRateDl pktDiscardRateDl = null;
1336 private PktLossRateDl pktLossRateDl = null;
1337 private PktLossRateUl pktLossRateUl = null;
1338 private ThroughputDl throughputDl = null;
1339 private ThroughputUl throughputUl = null;
1340
1341 public PDCPMeasReportPerUe() {
1342 }
1343
1344 public PDCPMeasReportPerUe(byte[] code) {
1345 this.code = code;
1346 }
1347
1348 public void setEcgi(ECGI ecgi) {
1349 this.ecgi = ecgi;
1350 }
1351
1352 public ECGI getEcgi() {
1353 return ecgi;
1354 }
1355
1356 public void setCrnti(CRNTI crnti) {
1357 this.crnti = crnti;
1358 }
1359
1360 public CRNTI getCrnti() {
1361 return crnti;
1362 }
1363
1364 public void setQciVals(QciVals qciVals) {
1365 this.qciVals = qciVals;
1366 }
1367
1368 public QciVals getQciVals() {
1369 return qciVals;
1370 }
1371
1372 public void setDataVolDl(DataVolDl dataVolDl) {
1373 this.dataVolDl = dataVolDl;
1374 }
1375
1376 public DataVolDl getDataVolDl() {
1377 return dataVolDl;
1378 }
1379
1380 public void setDataVolUl(DataVolUl dataVolUl) {
1381 this.dataVolUl = dataVolUl;
1382 }
1383
1384 public DataVolUl getDataVolUl() {
1385 return dataVolUl;
1386 }
1387
1388 public void setPktDelayDl(PktDelayDl pktDelayDl) {
1389 this.pktDelayDl = pktDelayDl;
1390 }
1391
1392 public PktDelayDl getPktDelayDl() {
1393 return pktDelayDl;
1394 }
1395
1396 public void setPktDelayUl(PktDelayUl pktDelayUl) {
1397 this.pktDelayUl = pktDelayUl;
1398 }
1399
1400 public PktDelayUl getPktDelayUl() {
1401 return pktDelayUl;
1402 }
1403
1404 public void setPktDiscardRateDl(PktDiscardRateDl pktDiscardRateDl) {
1405 this.pktDiscardRateDl = pktDiscardRateDl;
1406 }
1407
1408 public PktDiscardRateDl getPktDiscardRateDl() {
1409 return pktDiscardRateDl;
1410 }
1411
1412 public void setPktLossRateDl(PktLossRateDl pktLossRateDl) {
1413 this.pktLossRateDl = pktLossRateDl;
1414 }
1415
1416 public PktLossRateDl getPktLossRateDl() {
1417 return pktLossRateDl;
1418 }
1419
1420 public void setPktLossRateUl(PktLossRateUl pktLossRateUl) {
1421 this.pktLossRateUl = pktLossRateUl;
1422 }
1423
1424 public PktLossRateUl getPktLossRateUl() {
1425 return pktLossRateUl;
1426 }
1427
1428 public void setThroughputDl(ThroughputDl throughputDl) {
1429 this.throughputDl = throughputDl;
1430 }
1431
1432 public ThroughputDl getThroughputDl() {
1433 return throughputDl;
1434 }
1435
1436 public void setThroughputUl(ThroughputUl throughputUl) {
1437 this.throughputUl = throughputUl;
1438 }
1439
1440 public ThroughputUl getThroughputUl() {
1441 return throughputUl;
1442 }
1443
1444 public int encode(BerByteArrayOutputStream os) throws IOException {
1445 return encode(os, true);
1446 }
1447
1448 public int encode(BerByteArrayOutputStream os, boolean withTag) throws IOException {
1449
1450 if (code != null) {
1451 for (int i = code.length - 1; i >= 0; i--) {
1452 os.write(code[i]);
1453 }
1454 if (withTag) {
1455 return tag.encode(os) + code.length;
1456 }
1457 return code.length;
1458 }
1459
1460 int codeLength = 0;
1461 codeLength += throughputUl.encode(os, false);
1462 // write tag: CONTEXT_CLASS, CONSTRUCTED, 11
1463 os.write(0xAB);
1464 codeLength += 1;
1465
1466 codeLength += throughputDl.encode(os, false);
1467 // write tag: CONTEXT_CLASS, CONSTRUCTED, 10
1468 os.write(0xAA);
1469 codeLength += 1;
1470
1471 codeLength += pktLossRateUl.encode(os, false);
1472 // write tag: CONTEXT_CLASS, CONSTRUCTED, 9
1473 os.write(0xA9);
1474 codeLength += 1;
1475
1476 codeLength += pktLossRateDl.encode(os, false);
1477 // write tag: CONTEXT_CLASS, CONSTRUCTED, 8
1478 os.write(0xA8);
1479 codeLength += 1;
1480
1481 codeLength += pktDiscardRateDl.encode(os, false);
1482 // write tag: CONTEXT_CLASS, CONSTRUCTED, 7
1483 os.write(0xA7);
1484 codeLength += 1;
1485
1486 codeLength += pktDelayUl.encode(os, false);
1487 // write tag: CONTEXT_CLASS, CONSTRUCTED, 6
1488 os.write(0xA6);
1489 codeLength += 1;
1490
1491 codeLength += pktDelayDl.encode(os, false);
1492 // write tag: CONTEXT_CLASS, CONSTRUCTED, 5
1493 os.write(0xA5);
1494 codeLength += 1;
1495
1496 codeLength += dataVolUl.encode(os, false);
1497 // write tag: CONTEXT_CLASS, CONSTRUCTED, 4
1498 os.write(0xA4);
1499 codeLength += 1;
1500
1501 codeLength += dataVolDl.encode(os, false);
1502 // write tag: CONTEXT_CLASS, CONSTRUCTED, 3
1503 os.write(0xA3);
1504 codeLength += 1;
1505
1506 codeLength += qciVals.encode(os, false);
1507 // write tag: CONTEXT_CLASS, CONSTRUCTED, 2
1508 os.write(0xA2);
1509 codeLength += 1;
1510
1511 codeLength += crnti.encode(os, false);
1512 // write tag: CONTEXT_CLASS, PRIMITIVE, 1
1513 os.write(0x81);
1514 codeLength += 1;
1515
1516 codeLength += ecgi.encode(os, false);
1517 // write tag: CONTEXT_CLASS, CONSTRUCTED, 0
1518 os.write(0xA0);
1519 codeLength += 1;
1520
1521 codeLength += BerLength.encodeLength(os, codeLength);
1522
1523 if (withTag) {
1524 codeLength += tag.encode(os);
1525 }
1526
1527 return codeLength;
1528
1529 }
1530
1531 public int decode(InputStream is) throws IOException {
1532 return decode(is, true);
1533 }
1534
1535 public int decode(InputStream is, boolean withTag) throws IOException {
1536 int codeLength = 0;
1537 int subCodeLength = 0;
1538 BerTag berTag = new BerTag();
1539
1540 if (withTag) {
1541 codeLength += tag.decodeAndCheck(is);
1542 }
1543
1544 BerLength length = new BerLength();
1545 codeLength += length.decode(is);
1546
1547 int totalLength = length.val;
1548 codeLength += totalLength;
1549
1550 subCodeLength += berTag.decode(is);
1551 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 0)) {
1552 ecgi = new ECGI();
1553 subCodeLength += ecgi.decode(is, false);
1554 subCodeLength += berTag.decode(is);
1555 }
1556 else {
1557 throw new IOException("Tag does not match the mandatory sequence element tag.");
1558 }
1559
1560 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.PRIMITIVE, 1)) {
1561 crnti = new CRNTI();
1562 subCodeLength += crnti.decode(is, false);
1563 subCodeLength += berTag.decode(is);
1564 }
1565 else {
1566 throw new IOException("Tag does not match the mandatory sequence element tag.");
1567 }
1568
1569 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 2)) {
1570 qciVals = new QciVals();
1571 subCodeLength += qciVals.decode(is, false);
1572 subCodeLength += berTag.decode(is);
1573 }
1574 else {
1575 throw new IOException("Tag does not match the mandatory sequence element tag.");
1576 }
1577
1578 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 3)) {
1579 dataVolDl = new DataVolDl();
1580 subCodeLength += dataVolDl.decode(is, false);
1581 subCodeLength += berTag.decode(is);
1582 }
1583 else {
1584 throw new IOException("Tag does not match the mandatory sequence element tag.");
1585 }
1586
1587 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 4)) {
1588 dataVolUl = new DataVolUl();
1589 subCodeLength += dataVolUl.decode(is, false);
1590 subCodeLength += berTag.decode(is);
1591 }
1592 else {
1593 throw new IOException("Tag does not match the mandatory sequence element tag.");
1594 }
1595
1596 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 5)) {
1597 pktDelayDl = new PktDelayDl();
1598 subCodeLength += pktDelayDl.decode(is, false);
1599 subCodeLength += berTag.decode(is);
1600 }
1601 else {
1602 throw new IOException("Tag does not match the mandatory sequence element tag.");
1603 }
1604
1605 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 6)) {
1606 pktDelayUl = new PktDelayUl();
1607 subCodeLength += pktDelayUl.decode(is, false);
1608 subCodeLength += berTag.decode(is);
1609 }
1610 else {
1611 throw new IOException("Tag does not match the mandatory sequence element tag.");
1612 }
1613
1614 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 7)) {
1615 pktDiscardRateDl = new PktDiscardRateDl();
1616 subCodeLength += pktDiscardRateDl.decode(is, false);
1617 subCodeLength += berTag.decode(is);
1618 }
1619 else {
1620 throw new IOException("Tag does not match the mandatory sequence element tag.");
1621 }
1622
1623 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 8)) {
1624 pktLossRateDl = new PktLossRateDl();
1625 subCodeLength += pktLossRateDl.decode(is, false);
1626 subCodeLength += berTag.decode(is);
1627 }
1628 else {
1629 throw new IOException("Tag does not match the mandatory sequence element tag.");
1630 }
1631
1632 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 9)) {
1633 pktLossRateUl = new PktLossRateUl();
1634 subCodeLength += pktLossRateUl.decode(is, false);
1635 subCodeLength += berTag.decode(is);
1636 }
1637 else {
1638 throw new IOException("Tag does not match the mandatory sequence element tag.");
1639 }
1640
1641 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 10)) {
1642 throughputDl = new ThroughputDl();
1643 subCodeLength += throughputDl.decode(is, false);
1644 subCodeLength += berTag.decode(is);
1645 }
1646 else {
1647 throw new IOException("Tag does not match the mandatory sequence element tag.");
1648 }
1649
1650 if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 11)) {
1651 throughputUl = new ThroughputUl();
1652 subCodeLength += throughputUl.decode(is, false);
1653 if (subCodeLength == totalLength) {
1654 return codeLength;
1655 }
1656 }
1657 throw new IOException("Unexpected end of sequence, length tag: " + totalLength + ", actual sequence length: " + subCodeLength);
1658
1659
1660 }
1661
1662 public void encodeAndSave(int encodingSizeGuess) throws IOException {
1663 BerByteArrayOutputStream os = new BerByteArrayOutputStream(encodingSizeGuess);
1664 encode(os, false);
1665 code = os.getArray();
1666 }
1667
1668 public String toString() {
1669 StringBuilder sb = new StringBuilder();
1670 appendAsString(sb, 0);
1671 return sb.toString();
1672 }
1673
1674 public void appendAsString(StringBuilder sb, int indentLevel) {
1675
1676 sb.append("{");
1677 sb.append("\n");
1678 for (int i = 0; i < indentLevel + 1; i++) {
1679 sb.append("\t");
1680 }
1681 if (ecgi != null) {
slowr60d4d102017-08-16 18:33:58 -07001682 sb.append("ecgi: ");
slowr13fa5b02017-08-08 16:32:31 -07001683 ecgi.appendAsString(sb, indentLevel + 1);
1684 }
1685
1686 sb.append(",\n");
1687 for (int i = 0; i < indentLevel + 1; i++) {
1688 sb.append("\t");
1689 }
1690 if (crnti != null) {
slowr60d4d102017-08-16 18:33:58 -07001691 sb.append("crnti: ").append(crnti);
slowr13fa5b02017-08-08 16:32:31 -07001692 }
1693
1694 sb.append(",\n");
1695 for (int i = 0; i < indentLevel + 1; i++) {
1696 sb.append("\t");
1697 }
1698 if (qciVals != null) {
slowr60d4d102017-08-16 18:33:58 -07001699 sb.append("qciVals: ");
slowr13fa5b02017-08-08 16:32:31 -07001700 qciVals.appendAsString(sb, indentLevel + 1);
1701 }
1702
1703 sb.append(",\n");
1704 for (int i = 0; i < indentLevel + 1; i++) {
1705 sb.append("\t");
1706 }
1707 if (dataVolDl != null) {
slowr60d4d102017-08-16 18:33:58 -07001708 sb.append("dataVolDl: ");
slowr13fa5b02017-08-08 16:32:31 -07001709 dataVolDl.appendAsString(sb, indentLevel + 1);
1710 }
1711
1712 sb.append(",\n");
1713 for (int i = 0; i < indentLevel + 1; i++) {
1714 sb.append("\t");
1715 }
1716 if (dataVolUl != null) {
slowr60d4d102017-08-16 18:33:58 -07001717 sb.append("dataVolUl: ");
slowr13fa5b02017-08-08 16:32:31 -07001718 dataVolUl.appendAsString(sb, indentLevel + 1);
1719 }
1720
1721 sb.append(",\n");
1722 for (int i = 0; i < indentLevel + 1; i++) {
1723 sb.append("\t");
1724 }
1725 if (pktDelayDl != null) {
slowr60d4d102017-08-16 18:33:58 -07001726 sb.append("pktDelayDl: ");
slowr13fa5b02017-08-08 16:32:31 -07001727 pktDelayDl.appendAsString(sb, indentLevel + 1);
1728 }
1729
1730 sb.append(",\n");
1731 for (int i = 0; i < indentLevel + 1; i++) {
1732 sb.append("\t");
1733 }
1734 if (pktDelayUl != null) {
slowr60d4d102017-08-16 18:33:58 -07001735 sb.append("pktDelayUl: ");
slowr13fa5b02017-08-08 16:32:31 -07001736 pktDelayUl.appendAsString(sb, indentLevel + 1);
1737 }
1738
1739 sb.append(",\n");
1740 for (int i = 0; i < indentLevel + 1; i++) {
1741 sb.append("\t");
1742 }
1743 if (pktDiscardRateDl != null) {
slowr60d4d102017-08-16 18:33:58 -07001744 sb.append("pktDiscardRateDl: ");
slowr13fa5b02017-08-08 16:32:31 -07001745 pktDiscardRateDl.appendAsString(sb, indentLevel + 1);
1746 }
1747
1748 sb.append(",\n");
1749 for (int i = 0; i < indentLevel + 1; i++) {
1750 sb.append("\t");
1751 }
1752 if (pktLossRateDl != null) {
slowr60d4d102017-08-16 18:33:58 -07001753 sb.append("pktLossRateDl: ");
slowr13fa5b02017-08-08 16:32:31 -07001754 pktLossRateDl.appendAsString(sb, indentLevel + 1);
1755 }
1756
1757 sb.append(",\n");
1758 for (int i = 0; i < indentLevel + 1; i++) {
1759 sb.append("\t");
1760 }
1761 if (pktLossRateUl != null) {
slowr60d4d102017-08-16 18:33:58 -07001762 sb.append("pktLossRateUl: ");
slowr13fa5b02017-08-08 16:32:31 -07001763 pktLossRateUl.appendAsString(sb, indentLevel + 1);
1764 }
1765
1766 sb.append(",\n");
1767 for (int i = 0; i < indentLevel + 1; i++) {
1768 sb.append("\t");
1769 }
1770 if (throughputDl != null) {
slowr60d4d102017-08-16 18:33:58 -07001771 sb.append("throughputDl: ");
slowr13fa5b02017-08-08 16:32:31 -07001772 throughputDl.appendAsString(sb, indentLevel + 1);
1773 }
1774
1775 sb.append(",\n");
1776 for (int i = 0; i < indentLevel + 1; i++) {
1777 sb.append("\t");
1778 }
1779 if (throughputUl != null) {
slowr60d4d102017-08-16 18:33:58 -07001780 sb.append("throughputUl: ");
slowr13fa5b02017-08-08 16:32:31 -07001781 throughputUl.appendAsString(sb, indentLevel + 1);
1782 }
1783
1784 sb.append("\n");
1785 for (int i = 0; i < indentLevel; i++) {
1786 sb.append("\t");
1787 }
1788 sb.append("}");
1789 }
1790
1791}
1792