aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vpp/perf
AgeCommit message (Collapse)AuthorFilesLines
2018-12-11Add missing = to all suite VariablesVratko Polak109-203/+203
Use the following if we ever decide '} =' is better than '}='. $ cd csit/tests $ find . -type f -print0 | xargs -0 sed -i -E 's/^\| \$\{(.*)\}= \|([^|])/\| \$\{\1\} = \|\2/g' FIXME: Add a corresponding check to https://gerrit.fd.io/r/13450 Change-Id: I73c516a0d7e475ff0986fd6515aaae10accd1a3a Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-11-30CSIT-1299: Revise the graphs in TrendingTibor Frank4-4/+4
Change-Id: Ie8cbc7bc8a58aca41c8cb35c14dbd8e80f027f5c Signed-off-by: Tibor Frank <tifrank@cisco.com>
2018-11-27CSIT python API introductionJan Gelety1-1/+1
Jira: CSIT-1336 Change-Id: I96d2b0221c5a7466484a82339fc132c5921532d1 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-10-24Remove usage of vpp-ext-deps packageJan Gelety1-1/+1
This package is not needed for csit enymore. Change-Id: Ie32a9c9322873e66554bb69112d4428697c866db Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-10-20update l2bdbasemaclrn-mrr and l2bdbasemaclrn-ndrpdr for x553 NICYulong Pei2-2/+2
update the test suites to call "Initialize L2 bridge domain in circular topology" since "Initialize L2 bridge domain in 2-node circular topology" was replaced by it. Change-Id: I6d5cb0868353228fbcf37b308ffa0b562649c57a Signed-off-by: Yulong Pei <yulong.pei@intel.com>
2018-10-12Tag l2bdscale as L2BDSCALE, not L2BDBASEVratko Polak24-24/+24
Change-Id: I0d2d2f16f7e0b710f432711d7e0eccf70fcfcc8f Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-10-10CSIT-1297: Modify the bootstrap.sh to run only selected mrr suitesTibor Frank10-10/+10
Change-Id: I2f5ac334e09bc35bfaefc112cf0bb7f57290a732 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2018-10-10Add VXLAN scale perf testsJan Gelety20-60/+2228
Jira: CSIT-1273 Change-Id: Ic2a41661c158384a5aaa7d4e73f30ffca13ddf82 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-10-02CSIT-1325 - FIX: AVF tests failing on unbindPeter Mikus4-4/+4
Currently there is and issue when consecutive AVF suites are trying to initialize AVF and bind VF to vfio-pci driver, there seems to be race condition if VPP has already VFs allocated. This patch should introduce safer contstrain to disable VPP prior AVF init. Change-Id: Id8839200f19d9e7a18d161b660cfb1e43a8ca379 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-10-01CSIT-1327 Migrate from vpp-dkms-dpdk to vpp-ext-depsPeter Mikus1-1/+1
Change-Id: I6fad3303c5c331ad36d163ba735907e35931dea0 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-09-28CSIT-1321 Add IP4base tests using AVF driverPeter Mikus4-0/+484
Change-Id: I960c2b4170efa06597851853cfc15bda1c60fe94 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-09-21Fix autogen regenerator and few suitesVratko Polak12-200/+152
+ "elif" instead of "else if". + Some suites had test cases reordered. + Some suites contained 9000B cases for avf. Change-Id: I3bf8241c317f20dbf66b497a2c8be35ef71307f5 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-09-20FIX: 40Ge2P1Vic1385-Eth-L2Bdbasemaclrn-Mrr typoPeter Mikus1-1/+1
- Per trending. Change-Id: I1e24b20bc774dae91df6fb81e3a9132ff79e3beb Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-09-20Add dot1q-l2bdbase-2memif-[ndrpdr|mrr] perf tests for 2-node topologyJan Gelety8-0/+1242
Jira: CSIT-1289 Change-Id: I9e3f1f4a03e3cac9d8831f3a87e0b1bce27a109e Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-20Add dot1q-l2bdbase-2vhost-[ndrpdr|mrr] perf tests for 2-node topologyJan Gelety8-94/+696
Jira: CSIT-1286 Change-Id: Id51c7dbf15d846f1286e6efbc5240a2556ec9652 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-20CSIT-1205 Create AVF driver test - Add Tests L2BD L2XCPeter Mikus8-0/+969
Change-Id: Ia74a87346fe2c0a170b881b510f1b0558a538f3c Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-09-20Create basic 2-node topology performance tests for Intel-X553 NICYulong Pei10-0/+1280
Intel-X553 is Denverton (Intel Atom cpu based SOC) integrated NIC, add below basic 2-node topology performance test suites for it, the test suites were changed from the existing Intel-x710 test suites, - eth-l2patch-mrr - eth-l2patch-ndrpdr - eth-l2xcbase-mrr - eth-l2xcbase-ndrpdr - eth-l2bdbasemaclrn-mrr - eth-l2bdbasemaclrn-ndrpdr - ethip4-ip4base-mrr - ethip4-ip4base-ndrpdr - ethip6-ip6base-mrr - ethip6-ip6base-ndrpdr Change-Id: Ib6d3655a6e14ae275c197fd7b39d59e17a233326 Signed-off-by: Yulong Pei <yulong.pei@intel.com>
2018-09-18Add dot1q-ip6base-[ndrpdr|mrr] perf tests for 2-node topologyJan Gelety12-4/+1090
Jira: CSIT-1283 Change-Id: I0f6841bafdb47bdbc3efe29801fe66a0d4c388ca Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-17Add dot1q-l2[bd|xc]base-[ndrpdr|mrr] perf tests for 2-node topologyJan Gelety16-128/+1231
Jira: CSIT-1284 Change-Id: I8ce4ffc76adf55bf9a8423077b8639601c560c87 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-14Add dot1q-ip4base-[ndrpdr|mrr] perf tests for 2-node topologyJan Gelety14-13/+1120
Jira: CSIT-1278 Change-Id: I3cc929222d7fd58f38e33917e84675e9c0b55bbd Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-10Create l2bdscale tests for 2-node topologyJan Gelety38-397/+1983
Jira: CSIT-1268 Change-Id: I13bf2e570a7d7231ba19c2c41db2b44c0b8d215a Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-07CSIT-1272: Fix VTS testsTibor Frank6-6/+6
Change-Id: Ibc4ae346032b2b711e4dcd1dbc9c0873e8464b19 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2018-09-07Create ip6scale tests for 2-node topologyJan Gelety24-162/+1734
Jira: CSIT-1176 Change-Id: I78f4e9cb24a7de0bde24a78d1ca26607598a62b2 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-06Fix autogen violationsVratko Polak4-76/+124
Four AVF suites had test cases in different order. Change-Id: I12fbe3508016a79a2153cc004c654a21ee4279bf Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-09-05Create ip4scale tests for 2-node topologyJan Gelety24-138/+1722
Jira: CSIT-1174 Change-Id: I46944a3bc0f508d80c8c944dab0190925ebe21f5 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-09-05CSIT-1205 Create AVF driver testPeter Mikus4-0/+482
- Add L1 KWs for SR-IOV handling (init Vfs, remove Vfs, ...) - Cleanup L1 KWs for SR-IOV bind/unbind/pci_get/... - Add L2 KWs for Test Setup/Teardown, L2patch, Create AVF interface - Add sample L2patch test fox x710, xxv710 Change-Id: If17077877455a14043617d8ea0d06cbe47b469e3 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-09-05Add eth-ip4base-2memif[ndrpdr|mrr] perf tests for 2-node topologyJan Gelety10-0/+1468
- added also 3-node test cases for comparison Jira: CSIT-1261 Change-Id: I1bfcc184e925e969d4a610920c4e49af23047507 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-08-28Create ip4-feature perf tests for 2-node topologyJan Gelety144-846/+4337
- ACL tests - NAT44 tests - iPoliceMarker tests Jira: CSIT-1175, CSIT-1154 Change-Id: Ife7e7df50f7c1c8033bacdb7512e78be6bcdf4eb Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-08-27FIX: Correction of ACL perf test suite documentationJan Gelety72-905/+840
Change-Id: I01cc87f5f5409346566ded52da9d384fdd3fa2c4 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-08-24VPP link bonding perf tests with two links between DUTsJan Gelety12-4/+687
Jira: CSIT-1247 Change-Id: Ia6a3f7682eb9a35040682913c0e33a1d61d1e6fa Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-08-22CSIT-1164 Create VM vhost tests for 2-node topologyPeter Mikus36-0/+4946
Change-Id: I955d3170da94cf35a2fda03259bcdc020ac2b652 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-08-21FIX: Use correct interface type in x710_1lbvpplacp perf testsJan Gelety4-4/+4
Change-Id: I68db0b0441ffc7d9b5e04048688711915ab24726 Signed-off-by: Jan Gelety <jgelety@cisco.com>
2018-08-20Refactor VHOST codePeter Mikus99-1368/+622
CSIT-1164 Create VM vhost tests for 2-node topology CSIT-1173 Implement VM vhost KWs for 2-node topology - Cleanup QemuUtils.py Library (PEP8, some TODOs, readability, multi queue, ring size, qemu version detection) - Cleanup VHOST KWs perf (Unify running QEMU on N-node topology) - Add ability to configure Queues, Hyperthreading, automatically compute number of CPU for VM/Testpmd and RXQ for Testpmd workload. - Partial cleanup of configuration KWs (l2xc, l2bd) for 2-node - Create IPv4 2-node KW Change-Id: I8aae1355bafa651de715cd438fe706c443ea1d88 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-08-17CSIT-1245 - Wrong configuration of srv6proxy-ndrpdr-stat and ↵Peter Mikus2-2/+2
srv6proxy-masq-ndrpdr TCs Change-Id: If5a45b97c90f85f2f193d796adbddd329f2728cd Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-08-15FIX: Set default values for VTS teardown argumentsVratko Polak6-6/+18
Change-Id: Ic45b23073307cd2174415cf3b406a9bb4be56004 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-08-10CSIT-1156 Create container memif tests for 2-node topologyPeter Mikus28-34/+1210
CSIT-1155 Implement container memif KWs for 2-node topology Change-Id: I4fc7bcab499a0b8a8594114d3f331b0d9610bf9d Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-08-10CSIT-1193 De-duplicate bootstrap scripts into onePeter Mikus1-0/+9
- DPDK and VPP bootstrap merged into one (ligato will follow). - Added more error detections - Added topo-cleanup.py to cleanup TB before and after test. - Remove installation of VPP Change-Id: I7a86117eb03cbe4ee8fde47baeed58bc86c0dfb2 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-08-03Fix ommissions from recent ChangesVratko Polak2-0/+153
+ Insert missing "Add worker threads"... keyword to udpsrcscale15 suite. + Add MRR for 40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1 suite. Change-Id: I467e5469a1421caa25373ab91010bd4d824fb32f Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-27FIX: Interface up handlingPeter Mikus8-16/+0
- Increase timeout when trying to check interface (this is useful if there are multiple interfaces and dump command take more than TIMEOUT/NR_IF which is happening quite often). - Reverse the order of applying MTU and interface UP to try to prevent API overload during interface initialization phase. Change-Id: I4e8623963d15b3c0d202172b4c58c43a972bb9cb Signed-off-by: Peter Mikus <pmikus@cisco.com> (cherry picked from commit 584345da4f7330f7517e5defd894b4995c2b57b0)
2018-07-25Add MTU handling into perf testsPeter Mikus45-45/+11
- Add ability to configure MTU on interfaces. Put the MTU into configuration keywors for all perf testcases. Change-Id: I364b4bc26b26f2f66f350949c0aaa2a2aa675682 Signed-off-by: Peter Mikus <pmikus@cisco.com>
2018-07-24CSIT-1097: Migrate L2 to NDRPDR and edit MRRVratko Polak168-7320/+13484
Change-Id: I738d1794f795e1225bc9709ea2ed2cf9b06d1cf4 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-24CSIT-1202: Unify min_rateVratko Polak3-3/+3
20000 is the bi-directional value, suites should use 10000. Change-Id: I61d6e83f4f6b8f1f9b3dc9457896997f686a2b66 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-24CSIT-1097: Unify max NIC bandwidth in ip4Peter Mikus4-15/+12
Also, minor fix in ip6. Change-Id: I3a23e49d2162e34a1d2a8671ae9f7e74b832315c Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-24CSIT-1097: Migrate Vts suite to NDRPDRVratko Polak11-287/+1020
Change-Id: Iaac913bb4b15d743a2e9d565e25d31c089cee3e8 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-24CSIT-1097: Migrate ip4 to NDRPDR and edit MRRVratko Polak152-6875/+12460
Change-Id: I9e3b2973c14f818247658a2ae34456c9fc2bae4e Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-24CSIT-1097: Migrate vm_vhost to NDRPDR and edit MRRVratko Polak126-11852/+10058
Change-Id: Id5eb8fe46b219426803d3e7d135319ce5117738c Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-20CSIT-1097: Migrate ip4_tun to NDRPDR and edit MRRVratko Polak19-2380/+1358
Change-Id: I20fe137cfbbcea1e337fe6295818ea105953d006 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-20CSIT-1097: Migrate memif to NDRPDR and edit MRRVratko Polak26-1325/+1849
Change-Id: I22db20ec688f1a879e82549aa7aa68dafdc71b6c Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-18CSIT-1097: Crypto NDRPDR and missing MRR suitesVratko Polak34-3613/+2873
Change-Id: If40f9283ee889f85e85fad74a490252e812bbe02 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
2018-07-18CSIT-1097: Ip6 NDRPDR and edited MRR suitesVratko Polak38-3775/+2413
Change-Id: I912017c6d1eab5530eecb2326887ffd057916ee8 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
pan>, ei); e->time_cycles = cpu_time; e->event_type = type_index; e->track = track_index; /* Return user data for caller to fill in. */ return e->data; } /* External version of inline. */ void *elog_event_data (elog_main_t * em, elog_event_type_t * type, elog_track_t * track, u64 cpu_time); /** @brief Allocate an event to be filled in by the caller, non-inline Not normally called directly; this function underlies the ELOG_DATA and ELOG_TRACK_DATA macros @param em elog_main_t * @param type elog_event_type_t * type @param track elog_track_t * track @param cpu_time u64 current cpu tick value @returns event to be filled in */ always_inline void * elog_event_data_not_inline (elog_main_t * em, elog_event_type_t * type, elog_track_t * track, u64 cpu_time) { /* Return the user placeholder memory to scribble data into. */ if (PREDICT_FALSE (!elog_is_enabled (em))) return em->placeholder_event.data; return elog_event_data (em, type, track, cpu_time); } /** @brief Log a single-datum event @param em elog_main_t * @param type elog_event_type_t * type @param data u32 single datum to capture */ always_inline void elog (elog_main_t * em, elog_event_type_t * type, u32 data) { u32 *d = elog_event_data_not_inline (em, type, &em->default_track, clib_cpu_time_now ()); d[0] = data; } /** @brief Log a single-datum event, inline version @param em elog_main_t * @param type elog_event_type_t * type @param data u32 single datum to capture */ always_inline void elog_inline (elog_main_t * em, elog_event_type_t * type, u32 data) { u32 *d = elog_event_data_inline (em, type, &em->default_track, clib_cpu_time_now ()); d[0] = data; } /** @brief Log a single-datum event to a specific track, non-inline version @param em elog_main_t * @param type elog_event_type_t * type @param type elog_event_track_t * track @param data u32 single datum to capture */ always_inline void elog_track (elog_main_t * em, elog_event_type_t * type, elog_track_t * track, u32 data) { u32 *d = elog_event_data_not_inline (em, type, track, clib_cpu_time_now ()); d[0] = data; } /** @brief Log a single-datum event to a specific track @param em elog_main_t * @param type elog_event_type_t * type @param type elog_event_track_t * track @param data u32 single datum to capture */ always_inline void elog_track_inline (elog_main_t * em, elog_event_type_t * type, elog_track_t * track, u32 data) { u32 *d = elog_event_data_inline (em, type, track, clib_cpu_time_now ()); d[0] = data; } always_inline void * elog_data (elog_main_t * em, elog_event_type_t * type, elog_track_t * track) { return elog_event_data_not_inline (em, type, track, clib_cpu_time_now ()); } always_inline void * elog_data_inline (elog_main_t * em, elog_event_type_t * type, elog_track_t * track) { return elog_event_data_inline (em, type, track, clib_cpu_time_now ()); } /* Macro shorthands for generating/declaring events. */ #define __ELOG_TYPE_VAR(f) f #define __ELOG_TRACK_VAR(f) f #define ELOG_TYPE_DECLARE(f) static elog_event_type_t __ELOG_TYPE_VAR(f) #define ELOG_TYPE_INIT_FORMAT_AND_FUNCTION(fmt,func) \ { .format = fmt, .function = func, } #define ELOG_TYPE_INIT(fmt) \ ELOG_TYPE_INIT_FORMAT_AND_FUNCTION(fmt,(char *) __FUNCTION__) #define ELOG_TYPE_DECLARE_HELPER(f,fmt,func) \ static elog_event_type_t __ELOG_TYPE_VAR(f) = \ ELOG_TYPE_INIT_FORMAT_AND_FUNCTION (fmt, func) #define ELOG_TYPE_DECLARE_FORMAT_AND_FUNCTION(f,fmt) \ ELOG_TYPE_DECLARE_HELPER (f, fmt, (char *) __FUNCTION__) #define ELOG_TYPE_DECLARE_FORMAT(f,fmt) \ ELOG_TYPE_DECLARE_HELPER (f, fmt, 0) /* Shorthands with and without __FUNCTION__. D for decimal; X for hex. F for __FUNCTION__. */ #define ELOG_TYPE(f,fmt) ELOG_TYPE_DECLARE_FORMAT_AND_FUNCTION(f,fmt) #define ELOG_TYPE_D(f) ELOG_TYPE_DECLARE_FORMAT (f, #f " %d") #define ELOG_TYPE_X(f) ELOG_TYPE_DECLARE_FORMAT (f, #f " 0x%x") #define ELOG_TYPE_DF(f) ELOG_TYPE_DECLARE_FORMAT_AND_FUNCTION (f, #f " %d") #define ELOG_TYPE_XF(f) ELOG_TYPE_DECLARE_FORMAT_AND_FUNCTION (f, #f " 0x%x") #define ELOG_TYPE_FD(f) ELOG_TYPE_DECLARE_FORMAT_AND_FUNCTION (f, #f " %d") #define ELOG_TYPE_FX(f) ELOG_TYPE_DECLARE_FORMAT_AND_FUNCTION (f, #f " 0x%x") #define ELOG_TRACK_DECLARE(f) static elog_track_t __ELOG_TRACK_VAR(f) #define ELOG_TRACK(f) ELOG_TRACK_DECLARE(f) = { .name = #f, } /* Log 32 bits of data. */ #define ELOG(em,f,data) elog ((em), &__ELOG_TYPE_VAR(f), data) #define ELOG_INLINE(em,f,data) elog_inline ((em), &__ELOG_TYPE_VAR(f), data) /* Return data pointer to fill in. */ #define ELOG_TRACK_DATA(em,f,track) \ elog_data ((em), &__ELOG_TYPE_VAR(f), &__ELOG_TRACK_VAR(track)) #define ELOG_TRACK_DATA_INLINE(em,f,track) \ elog_data_inline ((em), &__ELOG_TYPE_VAR(f), &__ELOG_TRACK_VAR(track)) /* Shorthand with default track. */ #define ELOG_DATA(em,f) elog_data ((em), &__ELOG_TYPE_VAR (f), &(em)->default_track) #define ELOG_DATA_INLINE(em,f) elog_data_inline ((em), &__ELOG_TYPE_VAR (f), &(em)->default_track) /** @brief add a string to the event-log string table Often combined with hashing and the T4 elog format specifier to display complex strings in offline tooling @param em elog_main_t * @param format char * @param VARARGS @return u32 index to add to event log */ u32 elog_string (elog_main_t * em, char *format, ...); void elog_time_now (elog_time_stamp_t * et); /** @brief convert event ring events to events, and return them as a vector. @param em elog_main_t * @return event vector with timestamps in f64 seconds @note sets em->events to resulting vector. */ elog_event_t *elog_get_events (elog_main_t * em); /** @brief convert event ring events to events, and return them as a vector. @param em elog_main_t * @return event vector with timestamps in f64 seconds @note no side effects */ elog_event_t *elog_peek_events (elog_main_t * em); /* Merge two logs, add supplied track tags. */ void elog_merge (elog_main_t * dst, u8 * dst_tag, elog_main_t * src, u8 * src_tag, f64 align_tweak); /* 2 arguments elog_main_t and elog_event_t to format event or track name. */ u8 *format_elog_event (u8 * s, va_list * va); u8 *format_elog_track_name (u8 * s, va_list * va); u8 *format_elog_track (u8 * s, va_list * args); void serialize_elog_main (serialize_main_t * m, va_list * va); void unserialize_elog_main (serialize_main_t * m, va_list * va); void elog_init (elog_main_t * em, u32 n_events); void elog_alloc (elog_main_t * em, u32 n_events); #ifdef CLIB_UNIX always_inline clib_error_t * elog_write_file (elog_main_t * em, char *clib_file, int flush_ring) { serialize_main_t m; clib_error_t *error; error = serialize_open_clib_file (&m, clib_file); if (error) return error; error = serialize (&m, serialize_elog_main, em, flush_ring); if (!error) serialize_close (&m); return error; } clib_error_t *elog_write_file_not_inline (elog_main_t * em, char *clib_file, int flush_ring); always_inline clib_error_t * elog_read_file (elog_main_t * em, char *clib_file) { serialize_main_t m; clib_error_t *error; error = unserialize_open_clib_file (&m, clib_file); if (error) return error; error = unserialize (&m, unserialize_elog_main, em); if (!error) unserialize_close (&m); return error; } clib_error_t *elog_read_file_not_inline (elog_main_t * em, char *clib_file); #endif /* CLIB_UNIX */ #endif /* included_clib_elog_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */