@@ -481,35 +481,22 @@ typedef struct EXnselUser_s {
481
481
} EXnselUser_t ;
482
482
#define EXnselUserSize (sizeof(EXnselUser_t) + sizeof(elementHeader_t))
483
483
484
- // NEL
485
- typedef struct EXnelCommon_s {
486
- #define EXnelCommonID 25
484
+ // NAT event logging
485
+ typedef struct EXnatCommon_s {
486
+ #define EXnatCommonID 25
487
487
uint64_t msecEvent ; // NF_F_EVENT_TIME_MSEC(323)
488
488
uint32_t natPoolID ; // NF_N_NATPOOL_ID(283)
489
489
uint8_t natEvent ; // NAT_EVENT(230)
490
490
uint8_t fill1 ;
491
491
uint16_t fill2 ;
492
- #define OFFnelMsecEvent offsetof(EXnelCommon_t, msecEvent)
493
- #define SIZEnelMsecEvent MemberSize(EXnelCommon_t, msecEvent)
494
- #define OFFnatPoolID offsetof(EXnelCommon_t, natPoolID)
495
- #define SIZEnatPoolID MemberSize(EXnelCommon_t, natPoolID)
496
- #define OFFnatEvent offsetof(EXnelCommon_t, natEvent)
497
- #define SIZEnatEvent MemberSize(EXnelCommon_t, natEvent)
498
- } EXnelCommon_t ;
499
- #define EXnelCommonSize (sizeof(EXnelCommon_t) + sizeof(elementHeader_t))
500
-
501
- // comapt record includes vrf fields
502
- // no longer used, but old data may exist
503
- typedef struct EXnelCommonCompat_s {
504
- uint64_t msecEvent ; // NF_F_EVENT_TIME_MSEC(323)
505
- uint32_t egressVrf ; // NF_N_EGRESS_VRFID(235)
506
- uint32_t ingressVrf ; // NF_N_INGRESS_VRFID(234)
507
- uint32_t natPoolID ; // NF_N_NATPOOL_ID(283)
508
- uint8_t natEvent ; // NAT_EVENT(230)
509
- uint8_t fill1 ;
510
- uint16_t fill2 ;
511
- } EXnelCommonCompat_t ;
512
- #define EXnelCommonCompatSize (sizeof(EXnelCommonCompat_t) + sizeof(elementHeader_t))
492
+ #define OFFnelMsecEvent offsetof(EXnatCommon_t, msecEvent)
493
+ #define SIZEnelMsecEvent MemberSize(EXnatCommon_t, msecEvent)
494
+ #define OFFnatPoolID offsetof(EXnatCommon_t, natPoolID)
495
+ #define SIZEnatPoolID MemberSize(EXnatCommon_t, natPoolID)
496
+ #define OFFnatEvent offsetof(EXnatCommon_t, natEvent)
497
+ #define SIZEnatEvent MemberSize(EXnatCommon_t, natEvent)
498
+ } EXnatCommon_t ;
499
+ #define EXnatCommonSize (sizeof(EXnatCommon_t) + sizeof(elementHeader_t))
513
500
514
501
typedef struct EXnatPortBlock_s {
515
502
#define EXnatPortBlockID 26
@@ -672,8 +659,35 @@ typedef struct EXlayer2_s {
672
659
} EXlayer2_t ;
673
660
#define EXlayer2Size (sizeof(EXlayer2_t) + sizeof(elementHeader_t))
674
661
662
+ typedef struct EXflowId_s {
663
+ #define EXflowIdID 39
664
+ uint64_t flowId ; // IPFIX_flowId
665
+ #define OFFflowId offsetof(EXflowId_t, flowId)
666
+ #define SIZEflowId MemberSize(EXflowId_t, flowId)
667
+ } EXflowId_t ;
668
+ #define EXflowIdSize (sizeof(EXflowId_t) + sizeof(elementHeader_t))
669
+
670
+ typedef struct EXnokiaNat_s {
671
+ #define EXnokiaNatID 40
672
+ uint16_t inServiceID ;
673
+ uint16_t outServiceID ;
674
+ #define OFFinServiceID offsetof(EXnokiaNat_t, inServiceID)
675
+ #define SIZEinServiceID MemberSize(EXnokiaNat_t, inServiceID)
676
+ #define OFFoutServiceID offsetof(EXnokiaNat_t, outServiceID)
677
+ #define SIZEoutServiceID MemberSize(EXnokiaNat_t, outServiceID)
678
+ } EXnokiaNat_t ;
679
+ #define EXnokiaNatSize (sizeof(EXnokiaNat_t) + sizeof(elementHeader_t))
680
+
681
+ typedef struct EXnokiaNatString_s {
682
+ #define EXnokiaNatStringID 41
683
+ char natSubString [4 ];
684
+ #define OFFnatSubString offsetof(EXnokiaNatString_t, natSubString)
685
+ #define SIZEnatSubString VARLENGTH
686
+ } EXnokiaNatString_t ;
687
+ #define EXnokiaNatStringSize (sizeof(EXnokiaNatString_t) + sizeof(elementHeader_t))
688
+
675
689
// max possible elements
676
- #define MAXEXTENSIONS 39
690
+ #define MAXEXTENSIONS 42
677
691
678
692
// push a fixed length extension to the v3 record
679
693
// h v3 record header
@@ -734,14 +748,15 @@ static const struct extensionTable_s {
734
748
uint32_t size ; // number of bytes incl. header, 0xFFFF for dyn length
735
749
char * name ; // name of extension
736
750
} extensionTable [] = {
737
- {0 , 0 , "ExNull" }, EXTENSION (EXgenericFlow ), EXTENSION (EXipv4Flow ), EXTENSION (EXipv6Flow ), EXTENSION (EXflowMisc ),
738
- EXTENSION (EXcntFlow ), EXTENSION (EXvLan ), EXTENSION (EXasRouting ), EXTENSION (EXbgpNextHopV4 ), EXTENSION (EXbgpNextHopV6 ),
739
- EXTENSION (EXipNextHopV4 ), EXTENSION (EXipNextHopV6 ), EXTENSION (EXipReceivedV4 ), EXTENSION (EXipReceivedV6 ), EXTENSION (EXmplsLabel ),
740
- EXTENSION (EXmacAddr ), EXTENSION (EXasAdjacent ), EXTENSION (EXlatency ), EXTENSION (EXsamplerInfo ), EXTENSION (EXnselCommon ),
741
- EXTENSION (EXnatXlateIPv4 ), EXTENSION (EXnatXlateIPv6 ), EXTENSION (EXnatXlatePort ), EXTENSION (EXnselAcl ), EXTENSION (EXnselUser ),
742
- EXTENSION (EXnelCommon ), EXTENSION (EXnatPortBlock ), EXTENSION (EXnbarApp ), EXTENSION (EXlabel ), EXTENSION (EXinPayload ),
743
- EXTENSION (EXoutPayload ), EXTENSION (EXtunIPv4 ), EXTENSION (EXtunIPv6 ), EXTENSION (EXobservation ), EXTENSION (EXinmonMeta ),
744
- EXTENSION (EXinmonFrame ), EXTENSION (EXvrf ), EXTENSION (EXpfinfo ), EXTENSION (EXlayer2 )};
751
+ {0 , 0 , "EXnull" }, EXTENSION (EXgenericFlow ), EXTENSION (EXipv4Flow ), EXTENSION (EXipv6Flow ), EXTENSION (EXflowMisc ),
752
+ EXTENSION (EXcntFlow ), EXTENSION (EXvLan ), EXTENSION (EXasRouting ), EXTENSION (EXbgpNextHopV4 ), EXTENSION (EXbgpNextHopV6 ),
753
+ EXTENSION (EXipNextHopV4 ), EXTENSION (EXipNextHopV6 ), EXTENSION (EXipReceivedV4 ), EXTENSION (EXipReceivedV6 ), EXTENSION (EXmplsLabel ),
754
+ EXTENSION (EXmacAddr ), EXTENSION (EXasAdjacent ), EXTENSION (EXlatency ), EXTENSION (EXsamplerInfo ), EXTENSION (EXnselCommon ),
755
+ EXTENSION (EXnatXlateIPv4 ), EXTENSION (EXnatXlateIPv6 ), EXTENSION (EXnatXlatePort ), EXTENSION (EXnselAcl ), EXTENSION (EXnselUser ),
756
+ EXTENSION (EXnatCommon ), EXTENSION (EXnatPortBlock ), EXTENSION (EXnbarApp ), EXTENSION (EXlabel ), EXTENSION (EXinPayload ),
757
+ EXTENSION (EXoutPayload ), EXTENSION (EXtunIPv4 ), EXTENSION (EXtunIPv6 ), EXTENSION (EXobservation ), EXTENSION (EXinmonMeta ),
758
+ EXTENSION (EXinmonFrame ), EXTENSION (EXvrf ), EXTENSION (EXpfinfo ), EXTENSION (EXlayer2 ), EXTENSION (EXflowId ),
759
+ EXTENSION (EXnokiaNat ), EXTENSION (EXnokiaNatString )};
745
760
746
761
typedef struct record_map_s {
747
762
recordHeaderV3_t * recordHeader ;
0 commit comments