forked from CiscoDevNet/ydk-go
/
cisco_cef_mib.go
2798 lines (2384 loc) · 156 KB
/
cisco_cef_mib.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Cisco Express Forwarding (CEF) describes a high speed
// switching mechanism that a router uses to forward packets
// from the inbound to the outbound interface.
//
// CEF uses two sets of data structures
// or tables, which it stores in router memory:
//
// Forwarding information base (FIB) - Describes a database
// of information used to make forwarding decisions. It is
// conceptually similar to a routing table or route-cache,
// although its implementation is different.
//
// Adjacency - Two nodes in the network are said to be
// adjacent if they can reach each other via a single hop
// across a link layer.
//
// CEF path is a valid route to reach to a destination
// IP prefix. Multiple paths may exist out of a router to the
// same destination prefix. CEF Load balancing capability
// share the traffic to the destination IP prefix over all
// the active paths.
//
// After obtaining the prefix in the CEF table with the
// longest match, output forwarding follows the chain of
// forwarding elements.
//
// Forwarding element (FE) may process the packet, forward
// the packet, drop or punt the packet or it may also
// pass the packet to the next forwarding element in the
// chain for further processing.
//
// Forwarding Elements are of various types
// but this MIB only represents the forwarding elements of
// adjacency and label types. Hence a forwarding element
// chain will be represented as a list of labels and
// adjacency. The adjacency may point to a forwarding element
// list again, if it is not the last forwarding element in this
// chain.
//
// For the simplest IP forwarding case, the prefix entry will
// point at an adjacency forwarding element.
// The IP adjacency processing function will apply the output
// features, add the encapsulation (performing any required
// fixups), and may send the packet out.
//
// If loadbalancing is configured, the prefix entry will point
// to lists of forwarding elements. One of these lists will be
// selected to forward the packet.
//
// Each forwarding element list dictates which of a set of
// possible packet transformations to apply on the way to
// the same neighbour.
//
// The following diagram represents relationship
// between three of the core tables in this MIB module.
//
// cefPrefixTable cefFESelectionTable
//
// +---------------+ points +--------------+
// | | | | a set +----> | | | | |
// |---------------| of FE | |--------------|
// | | | | Selection | | | | | |
// |---------------| Entries | |--------------|
// | | | |------------+ | |<----+
// |---------------| |--------------| |
// | | +--------------| | | | | |
// +---------------+ | +--------------+ |
// | |
// points to an |
// adjacency entry |
// | |
// | cefAdjTable |
// | +---------------+ may point |
// +->| | | | to a set |
// |---------------| of FE |
// | | | | Selection |
// |---------------| Entries |
// | | | |----------------+
// |---------------|
// | |
// +---------------+
//
// Some of the Cisco series routers (e.g. 7500 & 12000)
// support distributed CEF (dCEF), in which the line cards
// (LCs) make the packet forwarding decisions using locally
// stored copies of the same Forwarding information base (FIB)
// and adjacency tables as the Routing Processor (RP).
//
// Inter-Process Communication (IPC) is the protocol used
// by routers that support distributed packet forwarding.
// CEF updates are encoded as external Data Representation
// (XDR) information elements inside IPC messages.
//
// This MIB reflects the distributed nature of CEF, e.g. CEF
// has different instances running on the RP and the line cards.
//
// There may be instances of inconsistency between the
// CEF forwarding databases(i.e between CEF forwarding
// database on line cards and the CEF forwarding database
// on the RP). CEF consistency checkers (CC) detects
// this inconsistency.
//
// When two databases are compared by a consistency checker,
// a set of records from the first (master) database is
// looked up in the second (slave).
//
// There are two types of consistency checkers,
// active and passive. Active consistency checkers
// are invoked in response to some stimulus, i.e.
// when a packet cannot be forwarded because the
// prefix is not in the forwarding table or
// in response to a Management Station request.
//
// Passive consistency checkers operate in the background,
// scanning portions of the databases on a periodic basis.
//
// The full-scan checkers are active consistency checkers
// which are invoked in response to a Management Station
// Request.
//
// If 64-bit counter objects in this MIB are supported,
// then their associated 32-bit counter objects
// must also be supported. The 32-bit counters will
// report the low 32-bits of the associated 64-bit
// counter count (e.g., cefPrefixPkts will report the
// least significant 32 bits of cefPrefixHCPkts).
// The same rule should be applied for the 64-bit gauge
// objects and their assocaited 32-bit gauge objects.
//
// If 64-bit counters in this MIB are not supported,
// then an agent MUST NOT instantiate the corresponding
// objects with an incorrect value; rather, it MUST
// respond with the appropriate error/exception
// condition (e.g., noSuchInstance or noSuchName).
//
// Counters related to CEF accounting (e.g.,
// cefPrefixPkts) MUST NOT be instantiated if the
// corresponding accounting method has been disabled.
//
// This MIB allows configuration and monitoring of CEF
// related objects.
package cisco_cef_mib
import (
"fmt"
"github.com/CiscoDevNet/ydk-go/ydk"
"github.com/CiscoDevNet/ydk-go/ydk/types"
"github.com/CiscoDevNet/ydk-go/ydk/types/yfilter"
"github.com/CiscoDevNet/ydk-go/ydk/models/cisco_ios_xe"
"reflect"
)
func init() {
ydk.YLogDebug(fmt.Sprintf("Registering top level entities for package cisco_cef_mib"))
ydk.RegisterEntity("{urn:ietf:params:xml:ns:yang:smiv2:CISCO-CEF-MIB CISCO-CEF-MIB}", reflect.TypeOf(CISCOCEFMIB{}))
ydk.RegisterEntity("CISCO-CEF-MIB:CISCO-CEF-MIB", reflect.TypeOf(CISCOCEFMIB{}))
}
// CISCOCEFMIB
type CISCOCEFMIB struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
CefFIB CISCOCEFMIB_CefFIB
CefCC CISCOCEFMIB_CefCC
CefNotifCntl CISCOCEFMIB_CefNotifCntl
// This table contains the summary information for the cefPrefixTable.
CefFIBSummaryTable CISCOCEFMIB_CefFIBSummaryTable
// A list of CEF forwarding prefixes.
CefPrefixTable CISCOCEFMIB_CefPrefixTable
// A table of Longest Match Prefix Query requests. Generator application
// should utilize the cefLMPrefixSpinLock to try to avoid collisions. See
// DESCRIPTION clause of cefLMPrefixSpinLock.
CefLMPrefixTable CISCOCEFMIB_CefLMPrefixTable
// CEF prefix path is a valid route to reach to a destination IP prefix.
// Multiple paths may exist out of a router to the same destination prefix.
// This table specify lists of CEF paths.
CefPathTable CISCOCEFMIB_CefPathTable
// This table contains the summary information for the cefAdjTable.
CefAdjSummaryTable CISCOCEFMIB_CefAdjSummaryTable
// A list of CEF adjacencies.
CefAdjTable CISCOCEFMIB_CefAdjTable
// A list of forwarding element selection entries.
CefFESelectionTable CISCOCEFMIB_CefFESelectionTable
// This table contains global config parameter of CEF on the Managed device.
CefCfgTable CISCOCEFMIB_CefCfgTable
// This table contains global resource information of CEF on the Managed
// device.
CefResourceTable CISCOCEFMIB_CefResourceTable
// This Table contains interface specific information of CEF on the Managed
// device.
CefIntTable CISCOCEFMIB_CefIntTable
// Entity acting as RP (Routing Processor) keeps the CEF states for the line
// card entities and communicates with the line card entities using XDR. This
// Table contains the CEF information related to peer entities on the managed
// device.
CefPeerTable CISCOCEFMIB_CefPeerTable
// Entity acting as RP (Routing Processor) keep the CEF FIB states for the
// line card entities and communicate with the line card entities using XDR.
// This Table contains the CEF FIB State related to peer entities on the
// managed device.
CefPeerFIBTable CISCOCEFMIB_CefPeerFIBTable
// This table contains CEF consistency checker (CC) global parameters for the
// managed device.
CefCCGlobalTable CISCOCEFMIB_CefCCGlobalTable
// This table contains CEF consistency checker types specific parameters on
// the managed device. All detected inconsistency are signaled to the
// Management Station via cefInconsistencyDetection notification.
CefCCTypeTable CISCOCEFMIB_CefCCTypeTable
// This table contains CEF inconsistency records.
CefInconsistencyRecordTable CISCOCEFMIB_CefInconsistencyRecordTable
// This table specifies the CEF stats based on the Prefix Length.
CefStatsPrefixLenTable CISCOCEFMIB_CefStatsPrefixLenTable
// This table specifies the CEF switch stats.
CefSwitchingStatsTable CISCOCEFMIB_CefSwitchingStatsTable
}
func (cISCOCEFMIB *CISCOCEFMIB) GetEntityData() *types.CommonEntityData {
cISCOCEFMIB.EntityData.YFilter = cISCOCEFMIB.YFilter
cISCOCEFMIB.EntityData.YangName = "CISCO-CEF-MIB"
cISCOCEFMIB.EntityData.BundleName = "cisco_ios_xe"
cISCOCEFMIB.EntityData.ParentYangName = "CISCO-CEF-MIB"
cISCOCEFMIB.EntityData.SegmentPath = "CISCO-CEF-MIB:CISCO-CEF-MIB"
cISCOCEFMIB.EntityData.AbsolutePath = cISCOCEFMIB.EntityData.SegmentPath
cISCOCEFMIB.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cISCOCEFMIB.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cISCOCEFMIB.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cISCOCEFMIB.EntityData.Children = types.NewOrderedMap()
cISCOCEFMIB.EntityData.Children.Append("cefFIB", types.YChild{"CefFIB", &cISCOCEFMIB.CefFIB})
cISCOCEFMIB.EntityData.Children.Append("cefCC", types.YChild{"CefCC", &cISCOCEFMIB.CefCC})
cISCOCEFMIB.EntityData.Children.Append("cefNotifCntl", types.YChild{"CefNotifCntl", &cISCOCEFMIB.CefNotifCntl})
cISCOCEFMIB.EntityData.Children.Append("cefFIBSummaryTable", types.YChild{"CefFIBSummaryTable", &cISCOCEFMIB.CefFIBSummaryTable})
cISCOCEFMIB.EntityData.Children.Append("cefPrefixTable", types.YChild{"CefPrefixTable", &cISCOCEFMIB.CefPrefixTable})
cISCOCEFMIB.EntityData.Children.Append("cefLMPrefixTable", types.YChild{"CefLMPrefixTable", &cISCOCEFMIB.CefLMPrefixTable})
cISCOCEFMIB.EntityData.Children.Append("cefPathTable", types.YChild{"CefPathTable", &cISCOCEFMIB.CefPathTable})
cISCOCEFMIB.EntityData.Children.Append("cefAdjSummaryTable", types.YChild{"CefAdjSummaryTable", &cISCOCEFMIB.CefAdjSummaryTable})
cISCOCEFMIB.EntityData.Children.Append("cefAdjTable", types.YChild{"CefAdjTable", &cISCOCEFMIB.CefAdjTable})
cISCOCEFMIB.EntityData.Children.Append("cefFESelectionTable", types.YChild{"CefFESelectionTable", &cISCOCEFMIB.CefFESelectionTable})
cISCOCEFMIB.EntityData.Children.Append("cefCfgTable", types.YChild{"CefCfgTable", &cISCOCEFMIB.CefCfgTable})
cISCOCEFMIB.EntityData.Children.Append("cefResourceTable", types.YChild{"CefResourceTable", &cISCOCEFMIB.CefResourceTable})
cISCOCEFMIB.EntityData.Children.Append("cefIntTable", types.YChild{"CefIntTable", &cISCOCEFMIB.CefIntTable})
cISCOCEFMIB.EntityData.Children.Append("cefPeerTable", types.YChild{"CefPeerTable", &cISCOCEFMIB.CefPeerTable})
cISCOCEFMIB.EntityData.Children.Append("cefPeerFIBTable", types.YChild{"CefPeerFIBTable", &cISCOCEFMIB.CefPeerFIBTable})
cISCOCEFMIB.EntityData.Children.Append("cefCCGlobalTable", types.YChild{"CefCCGlobalTable", &cISCOCEFMIB.CefCCGlobalTable})
cISCOCEFMIB.EntityData.Children.Append("cefCCTypeTable", types.YChild{"CefCCTypeTable", &cISCOCEFMIB.CefCCTypeTable})
cISCOCEFMIB.EntityData.Children.Append("cefInconsistencyRecordTable", types.YChild{"CefInconsistencyRecordTable", &cISCOCEFMIB.CefInconsistencyRecordTable})
cISCOCEFMIB.EntityData.Children.Append("cefStatsPrefixLenTable", types.YChild{"CefStatsPrefixLenTable", &cISCOCEFMIB.CefStatsPrefixLenTable})
cISCOCEFMIB.EntityData.Children.Append("cefSwitchingStatsTable", types.YChild{"CefSwitchingStatsTable", &cISCOCEFMIB.CefSwitchingStatsTable})
cISCOCEFMIB.EntityData.Leafs = types.NewOrderedMap()
cISCOCEFMIB.EntityData.YListKeys = []string {}
return &(cISCOCEFMIB.EntityData)
}
// CISCOCEFMIB_CefFIB
type CISCOCEFMIB_CefFIB struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// An advisory lock used to allow cooperating SNMP Command Generator
// applications to coordinate their use of the Set operation in creating
// Longest Match Prefix Entries in cefLMPrefixTable. When creating a new
// longest prefix match entry, the value of cefLMPrefixSpinLock should be
// retrieved. The destination address should be determined to be unique by
// the SNMP Command Generator application by consulting the cefLMPrefixTable.
// Finally, the longest prefix entry may be created (Set), including the
// advisory lock. If another SNMP Command Generator application has
// altered the longest prefix entry in the meantime, then the spin lock's
// value will have changed, and so this creation will fail because it will
// specify the wrong value for the spin lock. Since this is an advisory lock,
// the use of this lock is not enforced, but not using this lock may lead to
// conflict with the another SNMP command responder application which may
// also be acting on the cefLMPrefixTable. The type is interface{} with range:
// 0..2147483647.
CefLMPrefixSpinLock interface{}
}
func (cefFIB *CISCOCEFMIB_CefFIB) GetEntityData() *types.CommonEntityData {
cefFIB.EntityData.YFilter = cefFIB.YFilter
cefFIB.EntityData.YangName = "cefFIB"
cefFIB.EntityData.BundleName = "cisco_ios_xe"
cefFIB.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefFIB.EntityData.SegmentPath = "cefFIB"
cefFIB.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefFIB.EntityData.SegmentPath
cefFIB.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefFIB.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefFIB.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefFIB.EntityData.Children = types.NewOrderedMap()
cefFIB.EntityData.Leafs = types.NewOrderedMap()
cefFIB.EntityData.Leafs.Append("cefLMPrefixSpinLock", types.YLeaf{"CefLMPrefixSpinLock", cefFIB.CefLMPrefixSpinLock})
cefFIB.EntityData.YListKeys = []string {}
return &(cefFIB.EntityData)
}
// CISCOCEFMIB_CefCC
type CISCOCEFMIB_CefCC struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// The value of sysUpTime at the time an inconsistency is detecetd. The type
// is interface{} with range: 0..4294967295.
EntLastInconsistencyDetectTime interface{}
// Setting the value of this object to ccActionStart(1) will reset all the
// active consistency checkers. The Management station should poll the
// cefInconsistencyResetStatus object to get the state of inconsistency reset
// operation. This operation once started, cannot be aborted. Hence, the
// value of this object cannot be set to ccActionAbort(2). The value of this
// object can't be set to ccActionStart(1), if the value of object
// cefInconsistencyResetStatus is ccStatusRunning(2). The type is CefCCAction.
CefInconsistencyReset interface{}
// Indicates the status of the consistency reset request. The type is
// CefCCStatus.
CefInconsistencyResetStatus interface{}
}
func (cefCC *CISCOCEFMIB_CefCC) GetEntityData() *types.CommonEntityData {
cefCC.EntityData.YFilter = cefCC.YFilter
cefCC.EntityData.YangName = "cefCC"
cefCC.EntityData.BundleName = "cisco_ios_xe"
cefCC.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefCC.EntityData.SegmentPath = "cefCC"
cefCC.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefCC.EntityData.SegmentPath
cefCC.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefCC.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefCC.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefCC.EntityData.Children = types.NewOrderedMap()
cefCC.EntityData.Leafs = types.NewOrderedMap()
cefCC.EntityData.Leafs.Append("entLastInconsistencyDetectTime", types.YLeaf{"EntLastInconsistencyDetectTime", cefCC.EntLastInconsistencyDetectTime})
cefCC.EntityData.Leafs.Append("cefInconsistencyReset", types.YLeaf{"CefInconsistencyReset", cefCC.CefInconsistencyReset})
cefCC.EntityData.Leafs.Append("cefInconsistencyResetStatus", types.YLeaf{"CefInconsistencyResetStatus", cefCC.CefInconsistencyResetStatus})
cefCC.EntityData.YListKeys = []string {}
return &(cefCC.EntityData)
}
// CISCOCEFMIB_CefNotifCntl
type CISCOCEFMIB_CefNotifCntl struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// Indicates whether or not a notification should be generated on the
// detection of CEF resource Failure. The type is bool.
CefResourceFailureNotifEnable interface{}
// Indicates whether or not a notification should be generated on the
// detection of CEF peer state change. The type is bool.
CefPeerStateChangeNotifEnable interface{}
// Indicates whether or not a notification should be generated on the
// detection of CEF FIB peer state change. The type is bool.
CefPeerFIBStateChangeNotifEnable interface{}
// This object controls the generation of the cefInconsistencyDetection
// notification. If this object has a value of zero, then the throttle
// control is disabled. If this object has a non-zero value, then the agent
// must not generate more than one cefInconsistencyDetection
// 'notification-event' in the indicated period, where a 'notification-event'
// is the transmission of a single trap or inform PDU to a list of
// notification destinations. If additional inconsistency is detected within
// the throttling period, then notification-events for these inconsistencies
// should be suppressed by the agent until the current throttling period
// expires. At the end of a throttling period, one notification-event should
// be generated if any inconsistency was detected since the start of the
// throttling period. In such a case, another throttling period is started
// right away. An NMS should periodically poll cefInconsistencyRecordTable to
// detect any missed cefInconsistencyDetection notification-events, e.g., due
// to throttling or transmission loss. If cefNotifThrottlingInterval
// notification generation is enabled, the suggested default throttling period
// is 60 seconds, but generation of the cefInconsistencyDetection notification
// should be disabled by default. If the agent is capable of storing
// non-volatile configuration, then the value of this object must be restored
// after a re-initialization of the management system. The actual
// transmission of notifications is controlled via the MIB modules in RFC
// 3413. The type is interface{} with range: 0..3600. Units are seconds.
CefNotifThrottlingInterval interface{}
// Indicates whether cefInconsistencyDetection notification should be
// generated for this managed device. The type is bool.
CefInconsistencyNotifEnable interface{}
}
func (cefNotifCntl *CISCOCEFMIB_CefNotifCntl) GetEntityData() *types.CommonEntityData {
cefNotifCntl.EntityData.YFilter = cefNotifCntl.YFilter
cefNotifCntl.EntityData.YangName = "cefNotifCntl"
cefNotifCntl.EntityData.BundleName = "cisco_ios_xe"
cefNotifCntl.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefNotifCntl.EntityData.SegmentPath = "cefNotifCntl"
cefNotifCntl.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefNotifCntl.EntityData.SegmentPath
cefNotifCntl.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefNotifCntl.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefNotifCntl.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefNotifCntl.EntityData.Children = types.NewOrderedMap()
cefNotifCntl.EntityData.Leafs = types.NewOrderedMap()
cefNotifCntl.EntityData.Leafs.Append("cefResourceFailureNotifEnable", types.YLeaf{"CefResourceFailureNotifEnable", cefNotifCntl.CefResourceFailureNotifEnable})
cefNotifCntl.EntityData.Leafs.Append("cefPeerStateChangeNotifEnable", types.YLeaf{"CefPeerStateChangeNotifEnable", cefNotifCntl.CefPeerStateChangeNotifEnable})
cefNotifCntl.EntityData.Leafs.Append("cefPeerFIBStateChangeNotifEnable", types.YLeaf{"CefPeerFIBStateChangeNotifEnable", cefNotifCntl.CefPeerFIBStateChangeNotifEnable})
cefNotifCntl.EntityData.Leafs.Append("cefNotifThrottlingInterval", types.YLeaf{"CefNotifThrottlingInterval", cefNotifCntl.CefNotifThrottlingInterval})
cefNotifCntl.EntityData.Leafs.Append("cefInconsistencyNotifEnable", types.YLeaf{"CefInconsistencyNotifEnable", cefNotifCntl.CefInconsistencyNotifEnable})
cefNotifCntl.EntityData.YListKeys = []string {}
return &(cefNotifCntl.EntityData)
}
// CISCOCEFMIB_CefFIBSummaryTable
// This table contains the summary information
// for the cefPrefixTable.
type CISCOCEFMIB_CefFIBSummaryTable struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// If CEF is enabled on the Managed device, each entry contains the FIB
// summary related attributes for the managed entity. A row may exist for
// each IP version type (v4 and v6) depending upon the IP version supported on
// the device. entPhysicalIndex is also an index for this table which
// represents entities of 'module' entPhysicalClass which are capable of
// running CEF. The type is slice of
// CISCOCEFMIB_CefFIBSummaryTable_CefFIBSummaryEntry.
CefFIBSummaryEntry []*CISCOCEFMIB_CefFIBSummaryTable_CefFIBSummaryEntry
}
func (cefFIBSummaryTable *CISCOCEFMIB_CefFIBSummaryTable) GetEntityData() *types.CommonEntityData {
cefFIBSummaryTable.EntityData.YFilter = cefFIBSummaryTable.YFilter
cefFIBSummaryTable.EntityData.YangName = "cefFIBSummaryTable"
cefFIBSummaryTable.EntityData.BundleName = "cisco_ios_xe"
cefFIBSummaryTable.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefFIBSummaryTable.EntityData.SegmentPath = "cefFIBSummaryTable"
cefFIBSummaryTable.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefFIBSummaryTable.EntityData.SegmentPath
cefFIBSummaryTable.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefFIBSummaryTable.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefFIBSummaryTable.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefFIBSummaryTable.EntityData.Children = types.NewOrderedMap()
cefFIBSummaryTable.EntityData.Children.Append("cefFIBSummaryEntry", types.YChild{"CefFIBSummaryEntry", nil})
for i := range cefFIBSummaryTable.CefFIBSummaryEntry {
cefFIBSummaryTable.EntityData.Children.Append(types.GetSegmentPath(cefFIBSummaryTable.CefFIBSummaryEntry[i]), types.YChild{"CefFIBSummaryEntry", cefFIBSummaryTable.CefFIBSummaryEntry[i]})
}
cefFIBSummaryTable.EntityData.Leafs = types.NewOrderedMap()
cefFIBSummaryTable.EntityData.YListKeys = []string {}
return &(cefFIBSummaryTable.EntityData)
}
// CISCOCEFMIB_CefFIBSummaryTable_CefFIBSummaryEntry
// If CEF is enabled on the Managed device,
// each entry contains the FIB summary related
// attributes for the managed entity.
//
// A row may exist for each IP version type
// (v4 and v6) depending upon the IP version
// supported on the device.
//
// entPhysicalIndex is also an index for this
// table which represents entities of
// 'module' entPhysicalClass which are capable
// of running CEF.
type CISCOCEFMIB_CefFIBSummaryTable_CefFIBSummaryEntry struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
YListKey string
// This attribute is a key. The type is string with range: 1..2147483647.
// Refers to
// entity_mib.ENTITYMIB_EntPhysicalTable_EntPhysicalEntry_EntPhysicalIndex
EntPhysicalIndex interface{}
// This attribute is a key. The version of IP forwarding. The type is
// CefIpVersion.
CefFIBIpVersion interface{}
// Total number of forwarding Prefixes in FIB for the IP version specified by
// cefFIBIpVersion object. The type is interface{} with range: 0..4294967295.
CefFIBSummaryFwdPrefixes interface{}
}
func (cefFIBSummaryEntry *CISCOCEFMIB_CefFIBSummaryTable_CefFIBSummaryEntry) GetEntityData() *types.CommonEntityData {
cefFIBSummaryEntry.EntityData.YFilter = cefFIBSummaryEntry.YFilter
cefFIBSummaryEntry.EntityData.YangName = "cefFIBSummaryEntry"
cefFIBSummaryEntry.EntityData.BundleName = "cisco_ios_xe"
cefFIBSummaryEntry.EntityData.ParentYangName = "cefFIBSummaryTable"
cefFIBSummaryEntry.EntityData.SegmentPath = "cefFIBSummaryEntry" + types.AddKeyToken(cefFIBSummaryEntry.EntPhysicalIndex, "entPhysicalIndex") + types.AddKeyToken(cefFIBSummaryEntry.CefFIBIpVersion, "cefFIBIpVersion")
cefFIBSummaryEntry.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/cefFIBSummaryTable/" + cefFIBSummaryEntry.EntityData.SegmentPath
cefFIBSummaryEntry.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefFIBSummaryEntry.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefFIBSummaryEntry.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefFIBSummaryEntry.EntityData.Children = types.NewOrderedMap()
cefFIBSummaryEntry.EntityData.Leafs = types.NewOrderedMap()
cefFIBSummaryEntry.EntityData.Leafs.Append("entPhysicalIndex", types.YLeaf{"EntPhysicalIndex", cefFIBSummaryEntry.EntPhysicalIndex})
cefFIBSummaryEntry.EntityData.Leafs.Append("cefFIBIpVersion", types.YLeaf{"CefFIBIpVersion", cefFIBSummaryEntry.CefFIBIpVersion})
cefFIBSummaryEntry.EntityData.Leafs.Append("cefFIBSummaryFwdPrefixes", types.YLeaf{"CefFIBSummaryFwdPrefixes", cefFIBSummaryEntry.CefFIBSummaryFwdPrefixes})
cefFIBSummaryEntry.EntityData.YListKeys = []string {"EntPhysicalIndex", "CefFIBIpVersion"}
return &(cefFIBSummaryEntry.EntityData)
}
// CISCOCEFMIB_CefPrefixTable
// A list of CEF forwarding prefixes.
type CISCOCEFMIB_CefPrefixTable struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// If CEF is enabled on the Managed device, each entry contains the forwarding
// prefix attributes. CEF prefix based non-recursive stats are maintained in
// internal and external buckets (depending upon the value of
// cefIntNonrecursiveAccouting object in the CefIntEntry). entPhysicalIndex
// is also an index for this table which represents entities of 'module'
// entPhysicalClass which are capable of running CEF. The type is slice of
// CISCOCEFMIB_CefPrefixTable_CefPrefixEntry.
CefPrefixEntry []*CISCOCEFMIB_CefPrefixTable_CefPrefixEntry
}
func (cefPrefixTable *CISCOCEFMIB_CefPrefixTable) GetEntityData() *types.CommonEntityData {
cefPrefixTable.EntityData.YFilter = cefPrefixTable.YFilter
cefPrefixTable.EntityData.YangName = "cefPrefixTable"
cefPrefixTable.EntityData.BundleName = "cisco_ios_xe"
cefPrefixTable.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefPrefixTable.EntityData.SegmentPath = "cefPrefixTable"
cefPrefixTable.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefPrefixTable.EntityData.SegmentPath
cefPrefixTable.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefPrefixTable.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefPrefixTable.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefPrefixTable.EntityData.Children = types.NewOrderedMap()
cefPrefixTable.EntityData.Children.Append("cefPrefixEntry", types.YChild{"CefPrefixEntry", nil})
for i := range cefPrefixTable.CefPrefixEntry {
cefPrefixTable.EntityData.Children.Append(types.GetSegmentPath(cefPrefixTable.CefPrefixEntry[i]), types.YChild{"CefPrefixEntry", cefPrefixTable.CefPrefixEntry[i]})
}
cefPrefixTable.EntityData.Leafs = types.NewOrderedMap()
cefPrefixTable.EntityData.YListKeys = []string {}
return &(cefPrefixTable.EntityData)
}
// CISCOCEFMIB_CefPrefixTable_CefPrefixEntry
// If CEF is enabled on the Managed device,
// each entry contains the forwarding
// prefix attributes.
//
// CEF prefix based non-recursive stats are maintained
// in internal and external buckets (depending upon the
// value of cefIntNonrecursiveAccouting object in the
// CefIntEntry).
//
// entPhysicalIndex is also an index for this
// table which represents entities of
// 'module' entPhysicalClass which are capable
// of running CEF.
type CISCOCEFMIB_CefPrefixTable_CefPrefixEntry struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
YListKey string
// This attribute is a key. The type is string with range: 1..2147483647.
// Refers to
// entity_mib.ENTITYMIB_EntPhysicalTable_EntPhysicalEntry_EntPhysicalIndex
EntPhysicalIndex interface{}
// This attribute is a key. The Network Prefix Type. This object specifies the
// address type used for cefPrefixAddr. Prefix entries are only valid for the
// address type of ipv4(1) and ipv6(2). The type is InetAddressType.
CefPrefixType interface{}
// This attribute is a key. The Network Prefix Address. The type of this
// address is determined by the value of the cefPrefixType object. This object
// is a Prefix Address containing the prefix with length specified by
// cefPrefixLen. Any bits beyond the length specified by cefPrefixLen are
// zeroed. The type is string with length: 0..255.
CefPrefixAddr interface{}
// This attribute is a key. Length in bits of the FIB Address prefix. The type
// is interface{} with range: 0..2040.
CefPrefixLen interface{}
// This object indicates the associated forwarding element selection entries
// in cefFESelectionTable. The value of this object is index value
// (cefFESelectionName) of cefFESelectionTable. The type is string.
CefPrefixForwardingInfo interface{}
// If CEF accounting is set to enable per prefix accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable 'perPrefix'
// accounting), then this object represents the number of packets switched to
// this prefix. The type is interface{} with range: 0..4294967295. Units are
// packets.
CefPrefixPkts interface{}
// If CEF accounting is set to enable per prefix accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable 'perPrefix'
// accounting), then this object represents the number of packets switched to
// this prefix. This object is a 64-bit version of cefPrefixPkts. The type
// is interface{} with range: 0..18446744073709551615. Units are packets.
CefPrefixHCPkts interface{}
// If CEF accounting is set to enable per prefix accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable 'perPrefix'
// accounting), then this object represents the number of bytes switched to
// this prefix. The type is interface{} with range: 0..4294967295. Units are
// bytes.
CefPrefixBytes interface{}
// If CEF accounting is set to enable per prefix accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable 'perPrefix'
// accounting), then this object represents the number of bytes switched to
// this prefix. This object is a 64-bit version of cefPrefixBytes. The type
// is interface{} with range: 0..18446744073709551615. Units are bytes.
CefPrefixHCBytes interface{}
// If CEF accounting is set to enable non-recursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive packets in the internal bucket switched using this prefix.
// The type is interface{} with range: 0..4294967295. Units are packets.
CefPrefixInternalNRPkts interface{}
// If CEF accounting is set to enable non-recursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive packets in the internal bucket switched using this prefix.
// This object is a 64-bit version of cefPrefixInternalNRPkts. The type is
// interface{} with range: 0..18446744073709551615. Units are packets.
CefPrefixInternalNRHCPkts interface{}
// If CEF accounting is set to enable nonRecursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive bytes in the internal bucket switched using this prefix. The
// type is interface{} with range: 0..4294967295. Units are bytes.
CefPrefixInternalNRBytes interface{}
// If CEF accounting is set to enable nonRecursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive bytes in the internal bucket switched using this prefix.
// This object is a 64-bit version of cefPrefixInternalNRBytes. The type is
// interface{} with range: 0..18446744073709551615. Units are bytes.
CefPrefixInternalNRHCBytes interface{}
// If CEF accounting is set to enable non-recursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive packets in the external bucket switched using this prefix.
// The type is interface{} with range: 0..4294967295. Units are packets.
CefPrefixExternalNRPkts interface{}
// If CEF accounting is set to enable non-recursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive packets in the external bucket switched using this prefix.
// This object is a 64-bit version of cefPrefixExternalNRPkts. The type is
// interface{} with range: 0..18446744073709551615. Units are packets.
CefPrefixExternalNRHCPkts interface{}
// If CEF accounting is set to enable nonRecursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive bytes in the external bucket switched using this prefix. The
// type is interface{} with range: 0..4294967295. Units are bytes.
CefPrefixExternalNRBytes interface{}
// If CEF accounting is set to enable nonRecursive accounting (value of
// cefCfgAccountingMap object in the cefCfgEntry is set to enable
// 'nonRecursive' accounting), then this object represents the number of
// non-recursive bytes in the external bucket switched using this prefix.
// This object is a 64-bit version of cefPrefixExternalNRBytes. The type is
// interface{} with range: 0..18446744073709551615. Units are bytes.
CefPrefixExternalNRHCBytes interface{}
}
func (cefPrefixEntry *CISCOCEFMIB_CefPrefixTable_CefPrefixEntry) GetEntityData() *types.CommonEntityData {
cefPrefixEntry.EntityData.YFilter = cefPrefixEntry.YFilter
cefPrefixEntry.EntityData.YangName = "cefPrefixEntry"
cefPrefixEntry.EntityData.BundleName = "cisco_ios_xe"
cefPrefixEntry.EntityData.ParentYangName = "cefPrefixTable"
cefPrefixEntry.EntityData.SegmentPath = "cefPrefixEntry" + types.AddKeyToken(cefPrefixEntry.EntPhysicalIndex, "entPhysicalIndex") + types.AddKeyToken(cefPrefixEntry.CefPrefixType, "cefPrefixType") + types.AddKeyToken(cefPrefixEntry.CefPrefixAddr, "cefPrefixAddr") + types.AddKeyToken(cefPrefixEntry.CefPrefixLen, "cefPrefixLen")
cefPrefixEntry.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/cefPrefixTable/" + cefPrefixEntry.EntityData.SegmentPath
cefPrefixEntry.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefPrefixEntry.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefPrefixEntry.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefPrefixEntry.EntityData.Children = types.NewOrderedMap()
cefPrefixEntry.EntityData.Leafs = types.NewOrderedMap()
cefPrefixEntry.EntityData.Leafs.Append("entPhysicalIndex", types.YLeaf{"EntPhysicalIndex", cefPrefixEntry.EntPhysicalIndex})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixType", types.YLeaf{"CefPrefixType", cefPrefixEntry.CefPrefixType})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixAddr", types.YLeaf{"CefPrefixAddr", cefPrefixEntry.CefPrefixAddr})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixLen", types.YLeaf{"CefPrefixLen", cefPrefixEntry.CefPrefixLen})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixForwardingInfo", types.YLeaf{"CefPrefixForwardingInfo", cefPrefixEntry.CefPrefixForwardingInfo})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixPkts", types.YLeaf{"CefPrefixPkts", cefPrefixEntry.CefPrefixPkts})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixHCPkts", types.YLeaf{"CefPrefixHCPkts", cefPrefixEntry.CefPrefixHCPkts})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixBytes", types.YLeaf{"CefPrefixBytes", cefPrefixEntry.CefPrefixBytes})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixHCBytes", types.YLeaf{"CefPrefixHCBytes", cefPrefixEntry.CefPrefixHCBytes})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixInternalNRPkts", types.YLeaf{"CefPrefixInternalNRPkts", cefPrefixEntry.CefPrefixInternalNRPkts})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixInternalNRHCPkts", types.YLeaf{"CefPrefixInternalNRHCPkts", cefPrefixEntry.CefPrefixInternalNRHCPkts})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixInternalNRBytes", types.YLeaf{"CefPrefixInternalNRBytes", cefPrefixEntry.CefPrefixInternalNRBytes})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixInternalNRHCBytes", types.YLeaf{"CefPrefixInternalNRHCBytes", cefPrefixEntry.CefPrefixInternalNRHCBytes})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixExternalNRPkts", types.YLeaf{"CefPrefixExternalNRPkts", cefPrefixEntry.CefPrefixExternalNRPkts})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixExternalNRHCPkts", types.YLeaf{"CefPrefixExternalNRHCPkts", cefPrefixEntry.CefPrefixExternalNRHCPkts})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixExternalNRBytes", types.YLeaf{"CefPrefixExternalNRBytes", cefPrefixEntry.CefPrefixExternalNRBytes})
cefPrefixEntry.EntityData.Leafs.Append("cefPrefixExternalNRHCBytes", types.YLeaf{"CefPrefixExternalNRHCBytes", cefPrefixEntry.CefPrefixExternalNRHCBytes})
cefPrefixEntry.EntityData.YListKeys = []string {"EntPhysicalIndex", "CefPrefixType", "CefPrefixAddr", "CefPrefixLen"}
return &(cefPrefixEntry.EntityData)
}
// CISCOCEFMIB_CefLMPrefixTable
// A table of Longest Match Prefix Query requests.
//
// Generator application should utilize the
// cefLMPrefixSpinLock to try to avoid collisions.
// See DESCRIPTION clause of cefLMPrefixSpinLock.
type CISCOCEFMIB_CefLMPrefixTable struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// If CEF is enabled on the managed device, then each entry represents a
// longest Match Prefix request. A management station wishing to get the
// longest Match prefix for a given destination address should create the
// associate instance of the row status. The row status should be set to
// active(1) to initiate the request. Note that this entire procedure may be
// initiated via a single set request which specifies a row status of
// createAndGo(4). Once the request completes, the management station should
// retrieve the values of the objects of interest, and should then delete the
// entry. In order to prevent old entries from clogging the table, entries
// will be aged out, but an entry will never be deleted within 5 minutes of
// completion. Entries are lost after an agent restart. I.e. to find out the
// longest prefix match for destination address of A.B.C.D on entity whose
// entityPhysicalIndex is 1, the Management station will create an entry in
// cefLMPrefixTable with
// cefLMPrefixRowStatus.1(entPhysicalIndex).1(ipv4).A.B.C.D set to
// createAndGo(4). Management Station may query the value of objects
// cefLMPrefix and cefLMPrefixLen to find out the corresponding prefix entry
// from the cefPrefixTable once the value of cefLMPrefixState is set to
// matchFound(2). entPhysicalIndex is also an index for this table which
// represents entities of 'module' entPhysicalClass which are capable of
// running CEF. The type is slice of
// CISCOCEFMIB_CefLMPrefixTable_CefLMPrefixEntry.
CefLMPrefixEntry []*CISCOCEFMIB_CefLMPrefixTable_CefLMPrefixEntry
}
func (cefLMPrefixTable *CISCOCEFMIB_CefLMPrefixTable) GetEntityData() *types.CommonEntityData {
cefLMPrefixTable.EntityData.YFilter = cefLMPrefixTable.YFilter
cefLMPrefixTable.EntityData.YangName = "cefLMPrefixTable"
cefLMPrefixTable.EntityData.BundleName = "cisco_ios_xe"
cefLMPrefixTable.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefLMPrefixTable.EntityData.SegmentPath = "cefLMPrefixTable"
cefLMPrefixTable.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefLMPrefixTable.EntityData.SegmentPath
cefLMPrefixTable.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefLMPrefixTable.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefLMPrefixTable.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefLMPrefixTable.EntityData.Children = types.NewOrderedMap()
cefLMPrefixTable.EntityData.Children.Append("cefLMPrefixEntry", types.YChild{"CefLMPrefixEntry", nil})
for i := range cefLMPrefixTable.CefLMPrefixEntry {
cefLMPrefixTable.EntityData.Children.Append(types.GetSegmentPath(cefLMPrefixTable.CefLMPrefixEntry[i]), types.YChild{"CefLMPrefixEntry", cefLMPrefixTable.CefLMPrefixEntry[i]})
}
cefLMPrefixTable.EntityData.Leafs = types.NewOrderedMap()
cefLMPrefixTable.EntityData.YListKeys = []string {}
return &(cefLMPrefixTable.EntityData)
}
// CISCOCEFMIB_CefLMPrefixTable_CefLMPrefixEntry
// If CEF is enabled on the managed device, then each
// entry represents a longest Match Prefix request.
//
// A management station wishing to get the longest
// Match prefix for a given destination address
// should create the associate instance of the
// row status. The row status should be set to
// active(1) to initiate the request. Note that
// this entire procedure may be initiated via a
// single set request which specifies a row status
// of createAndGo(4).
//
// Once the request completes, the management station
// should retrieve the values of the objects of
// interest, and should then delete the entry. In order
// to prevent old entries from clogging the table,
// entries will be aged out, but an entry will never be
// deleted within 5 minutes of completion.
// Entries are lost after an agent restart.
//
// I.e. to find out the longest prefix match for
// destination address of A.B.C.D on entity whose
// entityPhysicalIndex is 1, the Management station
// will create an entry in cefLMPrefixTable with
// cefLMPrefixRowStatus.1(entPhysicalIndex).1(ipv4).A.B.C.D
// set to createAndGo(4). Management Station may query the
// value of objects cefLMPrefix and cefLMPrefixLen
// to find out the corresponding prefix entry from the
// cefPrefixTable once the value of cefLMPrefixState
// is set to matchFound(2).
//
// entPhysicalIndex is also an index for this
// table which represents entities of
// 'module' entPhysicalClass which are capable
// of running CEF.
type CISCOCEFMIB_CefLMPrefixTable_CefLMPrefixEntry struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
YListKey string
// This attribute is a key. The type is string with range: 1..2147483647.
// Refers to
// entity_mib.ENTITYMIB_EntPhysicalTable_EntPhysicalEntry_EntPhysicalIndex
EntPhysicalIndex interface{}
// This attribute is a key. The Destination Address Type. This object
// specifies the address type used for cefLMPrefixDestAddr. Longest Match
// Prefix entries are only valid for the address type of ipv4(1) and ipv6(2).
// The type is InetAddressType.
CefLMPrefixDestAddrType interface{}
// This attribute is a key. The Destination Address. The type of this address
// is determined by the value of the cefLMPrefixDestAddrType object. The type
// is string with length: 0..255.
CefLMPrefixDestAddr interface{}
// Indicates the state of this prefix search request. The type is
// CefPrefixSearchState.
CefLMPrefixState interface{}
// The Network Prefix Address. Index to the cefPrefixTable. The type of this
// address is determined by the value of the cefLMPrefixDestAddrType object.
// The type is string with length: 0..255.
CefLMPrefixAddr interface{}
// The Network Prefix Length. Index to the cefPrefixTable. The type is
// interface{} with range: 0..2040.
CefLMPrefixLen interface{}
// The status of this table entry. Once the entry status is set to
// active(1), the associated entry cannot be modified until the request
// completes (cefLMPrefixState transitions to matchFound(2) or
// noMatchFound(3)). Once the longest match request has been created (i.e.
// the cefLMPrefixRowStatus has been made active), the entry cannot be
// modified - the only operation possible after this is to delete the row. The
// type is RowStatus.
CefLMPrefixRowStatus interface{}
}
func (cefLMPrefixEntry *CISCOCEFMIB_CefLMPrefixTable_CefLMPrefixEntry) GetEntityData() *types.CommonEntityData {
cefLMPrefixEntry.EntityData.YFilter = cefLMPrefixEntry.YFilter
cefLMPrefixEntry.EntityData.YangName = "cefLMPrefixEntry"
cefLMPrefixEntry.EntityData.BundleName = "cisco_ios_xe"
cefLMPrefixEntry.EntityData.ParentYangName = "cefLMPrefixTable"
cefLMPrefixEntry.EntityData.SegmentPath = "cefLMPrefixEntry" + types.AddKeyToken(cefLMPrefixEntry.EntPhysicalIndex, "entPhysicalIndex") + types.AddKeyToken(cefLMPrefixEntry.CefLMPrefixDestAddrType, "cefLMPrefixDestAddrType") + types.AddKeyToken(cefLMPrefixEntry.CefLMPrefixDestAddr, "cefLMPrefixDestAddr")
cefLMPrefixEntry.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/cefLMPrefixTable/" + cefLMPrefixEntry.EntityData.SegmentPath
cefLMPrefixEntry.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefLMPrefixEntry.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefLMPrefixEntry.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefLMPrefixEntry.EntityData.Children = types.NewOrderedMap()
cefLMPrefixEntry.EntityData.Leafs = types.NewOrderedMap()
cefLMPrefixEntry.EntityData.Leafs.Append("entPhysicalIndex", types.YLeaf{"EntPhysicalIndex", cefLMPrefixEntry.EntPhysicalIndex})
cefLMPrefixEntry.EntityData.Leafs.Append("cefLMPrefixDestAddrType", types.YLeaf{"CefLMPrefixDestAddrType", cefLMPrefixEntry.CefLMPrefixDestAddrType})
cefLMPrefixEntry.EntityData.Leafs.Append("cefLMPrefixDestAddr", types.YLeaf{"CefLMPrefixDestAddr", cefLMPrefixEntry.CefLMPrefixDestAddr})
cefLMPrefixEntry.EntityData.Leafs.Append("cefLMPrefixState", types.YLeaf{"CefLMPrefixState", cefLMPrefixEntry.CefLMPrefixState})
cefLMPrefixEntry.EntityData.Leafs.Append("cefLMPrefixAddr", types.YLeaf{"CefLMPrefixAddr", cefLMPrefixEntry.CefLMPrefixAddr})
cefLMPrefixEntry.EntityData.Leafs.Append("cefLMPrefixLen", types.YLeaf{"CefLMPrefixLen", cefLMPrefixEntry.CefLMPrefixLen})
cefLMPrefixEntry.EntityData.Leafs.Append("cefLMPrefixRowStatus", types.YLeaf{"CefLMPrefixRowStatus", cefLMPrefixEntry.CefLMPrefixRowStatus})
cefLMPrefixEntry.EntityData.YListKeys = []string {"EntPhysicalIndex", "CefLMPrefixDestAddrType", "CefLMPrefixDestAddr"}
return &(cefLMPrefixEntry.EntityData)
}
// CISCOCEFMIB_CefPathTable
// CEF prefix path is a valid route to reach to a
// destination IP prefix. Multiple paths may exist
// out of a router to the same destination prefix.
// This table specify lists of CEF paths.
type CISCOCEFMIB_CefPathTable struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
// If CEF is enabled on the Managed device, each entry contain a CEF prefix
// path. entPhysicalIndex is also an index for this table which represents
// entities of 'module' entPhysicalClass which are capable of running CEF. The
// type is slice of CISCOCEFMIB_CefPathTable_CefPathEntry.
CefPathEntry []*CISCOCEFMIB_CefPathTable_CefPathEntry
}
func (cefPathTable *CISCOCEFMIB_CefPathTable) GetEntityData() *types.CommonEntityData {
cefPathTable.EntityData.YFilter = cefPathTable.YFilter
cefPathTable.EntityData.YangName = "cefPathTable"
cefPathTable.EntityData.BundleName = "cisco_ios_xe"
cefPathTable.EntityData.ParentYangName = "CISCO-CEF-MIB"
cefPathTable.EntityData.SegmentPath = "cefPathTable"
cefPathTable.EntityData.AbsolutePath = "CISCO-CEF-MIB:CISCO-CEF-MIB/" + cefPathTable.EntityData.SegmentPath
cefPathTable.EntityData.CapabilitiesTable = cisco_ios_xe.GetCapabilities()
cefPathTable.EntityData.NamespaceTable = cisco_ios_xe.GetNamespaces()
cefPathTable.EntityData.BundleYangModelsLocation = cisco_ios_xe.GetModelsPath()
cefPathTable.EntityData.Children = types.NewOrderedMap()
cefPathTable.EntityData.Children.Append("cefPathEntry", types.YChild{"CefPathEntry", nil})
for i := range cefPathTable.CefPathEntry {
cefPathTable.EntityData.Children.Append(types.GetSegmentPath(cefPathTable.CefPathEntry[i]), types.YChild{"CefPathEntry", cefPathTable.CefPathEntry[i]})
}
cefPathTable.EntityData.Leafs = types.NewOrderedMap()
cefPathTable.EntityData.YListKeys = []string {}
return &(cefPathTable.EntityData)
}
// CISCOCEFMIB_CefPathTable_CefPathEntry
// If CEF is enabled on the Managed device,
// each entry contain a CEF prefix path.
//
// entPhysicalIndex is also an index for this
// table which represents entities of
// 'module' entPhysicalClass which are capable
// of running CEF.
type CISCOCEFMIB_CefPathTable_CefPathEntry struct {
EntityData types.CommonEntityData
YFilter yfilter.YFilter
YListKey string
// This attribute is a key. The type is string with range: 1..2147483647.
// Refers to
// entity_mib.ENTITYMIB_EntPhysicalTable_EntPhysicalEntry_EntPhysicalIndex
EntPhysicalIndex interface{}
// This attribute is a key. The type is InetAddressType. Refers to
// cisco_cef_mib.CISCOCEFMIB_CefPrefixTable_CefPrefixEntry_CefPrefixType
CefPrefixType interface{}
// This attribute is a key. The type is string with length: 0..255. Refers to
// cisco_cef_mib.CISCOCEFMIB_CefPrefixTable_CefPrefixEntry_CefPrefixAddr
CefPrefixAddr interface{}
// This attribute is a key. The type is string with range: 0..2040. Refers to
// cisco_cef_mib.CISCOCEFMIB_CefPrefixTable_CefPrefixEntry_CefPrefixLen
CefPrefixLen interface{}
// This attribute is a key. The locally arbitrary, but unique identifier
// associated with this prefix path entry. The type is interface{} with range:
// 1..2147483647.
CefPathId interface{}
// Type for this CEF Path. The type is CefPathType.
CefPathType interface{}
// Interface associated with this CEF path. A value of zero for this object
// will indicate that no interface is associated with this path entry. The
// type is interface{} with range: 0..2147483647.
CefPathInterface interface{}
// Next hop address associated with this CEF path. The value of this object
// is only relevant for attached next hop and recursive next hop path types
// (when the object cefPathType is set to attachedNexthop(4) or
// recursiveNexthop(5)). and will be set to zero for other path types. The
// type of this address is determined by the value of the cefPrefixType
// object. The type is string with length: 0..255.
CefPathNextHopAddr interface{}
// The recursive vrf name associated with this path. The value of this object
// is only relevant for recursive next hop path types (when the object
// cefPathType is set to recursiveNexthop(5)), and '0x00' will be returned for
// other path types. The type is string with length: 0..31.
CefPathRecurseVrfName interface{}
}