summaryrefslogtreecommitdiffstats
path: root/src/plugins/nat
AgeCommit message (Expand)AuthorFilesLines
2018-08-15NAT44: fix next_src_nat (VPP-1384)Matus Fabian1-6/+7
2018-08-15VPP-1387:foreach outside address vector to find correct index when free outsi...shubing guo3-21/+16
2018-08-15NAT44: fix bug in snat_interface_add_del (VPP-1380)Matus Fabian1-4/+4
2018-08-15NAT64: fix TCP session expire (VPP-1390)Matus Fabian2-7/+20
2018-08-11VPP-1381: Fix the incorrect if condition when delete session for static mappingshubing guo1-2/+2
2018-08-09NAT44: delete user with zero sessions (VPP-1282)Matus Fabian5-20/+52
2018-08-02NAT44: LB NAT - local backends in multiple VRFs (VPP-1345)Matus Fabian5-34/+37
2018-07-23NAT44: fix forwarding feature bug (VPP-1349)Matus Fabian1-3/+3
2018-07-20NAT44: in+out interface in STN setup improvement (VPP-1344)Matus Fabian1-8/+26
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion1-16/+8
2018-07-13The gateway IP should be 172.16.2.1shenJibiao1-1/+1
2018-07-11avoid using thread local storage for thread indexDamjan Marion9-22/+22
2018-07-10NAT44: multiple outside FIB tables (VPP-1314)Matus Fabian4-41/+178
2018-07-10Do not translate packets destined for NAT64 inside interface (VPP-1331)Juraj Sloboda1-0/+29
2018-06-26NAT44: fix nat44_ed_not_translate_output_feature (VPP-1329)Matus Fabian1-0/+5
2018-06-16NAT44: fix coverityMatus Fabian1-1/+1
2018-06-15NAT44: endpoint dependent mode (VPP-1273)Matus Fabian7-1453/+3450
2018-06-11Fix multiple NAT translation with interface address as externalAlexander Chernavin1-4/+4
2018-05-28NAT44: code cleanup and refactor (VPP-1285)Matus Fabian17-463/+631
2018-05-27VPP-1294: add missing feature arc constraintDave Barach1-1/+2
2018-05-17NAT44: nat44_del_session and nat44_user_session_details API update (VPP-1271)Matus Fabian7-90/+246
2018-05-14NAT44: delete closed TCP session (VPP-1274)Matus Fabian3-22/+68
2018-05-13Improve ipfix template packet rewrite constructionDave Barach1-9/+27
2018-05-10NAT44: sessions counters per user fix (VPP-1270)Matus Fabian1-6/+6
2018-05-08NAT44: TCP connection close detection (VPP-1266)Matus Fabian7-13/+131
2018-05-04Flow: Rename IPFIX exporter.Ole Troan1-1/+1
2018-05-03NAT: fix bin API dump of static mappings.Milan Lenco1-2/+5
2018-05-03NAT44: fix VAT nat44_user_session_detailsMatus Fabian1-4/+5
2018-05-03NAT44 segv on unknown proto on inside interfaceMatthew Smith1-22/+25
2018-04-26NAT44: disable nat44-hairpinning feature for in-out interface (VPP-1255)Matus Fabian1-10/+20
2018-04-24NAT44: one-armed NAT and identity mapping (VPP-1212)Matus Fabian1-3/+10
2018-04-19Add special Twice-NAT feature (VPP-1221)Juraj Sloboda7-30/+94
2018-04-18NAT44: recycle old sessions for forwarding bypass (VPP-1240)Matus Fabian4-17/+98
2018-04-13NAT66: Do not translate if packet not aimed at outside interfaceJuraj Sloboda3-0/+55
2018-04-12NAT: disable CLI/API not supported in active mode (VPP-1234)Juraj Sloboda2-3/+215
2018-04-12Handle DHCP replies with NAT44 forwarding enabledMatthew Smith1-48/+57
2018-04-11NAT44: fix setting of flag SNAT_SESSION_FLAG_LOAD_BALANCING (VPP-1235)Matus Fabian4-24/+36
2018-04-10when deleting l3 static mapping with addr_only,ahdj0071-1/+4
2018-04-09NAT44: don't add static mapping to resolution vector if failed (VPP-1225)Matus Fabian1-3/+27
2018-04-05DSLite: Implement new API call DSLITE_ADDRESS_DUMP.Jon Loeliger2-0/+67
2018-04-04NAT added FIB entries have a preference lower than API/CLINeale Ranns1-6/+6
2018-04-04NAT44: prohibit multiple static mappings for a single local address (VPP-1224)Matus Fabian1-0/+11
2018-04-04NAT44: fix static mapping for DHCP addressed interface deleting (VPP-1223)Matus Fabian1-4/+92
2018-03-28NAT44: make 1:1NAT for DHCP addressed interface persistentMatus Fabian1-22/+53
2018-03-28NAT44: fix nat44_user_session_dump and nat44_del_session crash with one worke...Matus Fabian2-2/+2
2018-03-24User session counters stay <= per-user limitMatthew Smith3-17/+22
2018-03-23NAT44: fix ICMP checksum update crash (VPP-1205)Matus Fabian2-0/+6
2018-03-22NAT44: interface output feature and dst NAT (VPP-1200)Matus Fabian2-7/+78
2018-03-21NAT44: fix removal of LB static mappings with same local address and port pai...Matus Fabian1-5/+35
2018-03-16QoS recording and markingNeale Ranns2-6/+0
ile (" dint\n" " mvc .s2 TSCL,%0\n" " mvc .s2 TSCH,%1\n" " rint\n":"=b" (l), "=b" (h)); return ((u64) h << 32) | l; } #elif defined(_mips) && __mips == 64 always_inline u64 clib_cpu_time_now (void) { u64 result; asm volatile ("rdhwr %0,$31\n":"=r" (result)); return result; } #else #error "don't know how to read CPU time stamp" #endif void clib_time_verify_frequency (clib_time_t * c); always_inline f64 clib_time_now_internal (clib_time_t * c, u64 n) { u64 l = c->last_cpu_time; u64 t = c->total_cpu_time; t += n - l; c->total_cpu_time = t; c->last_cpu_time = n; if (PREDICT_FALSE ((c->last_cpu_time - c->last_verify_cpu_time) >> c->log2_clocks_per_frequency_verify)) clib_time_verify_frequency (c); return t * c->seconds_per_clock; } /* Maximum f64 value as max clib_time */ #define CLIB_TIME_MAX (1.7976931348623157e+308) always_inline f64 clib_time_now (clib_time_t * c) { return clib_time_now_internal (c, clib_cpu_time_now ()); } always_inline void clib_cpu_time_wait (u64 dt) { u64 t_end = clib_cpu_time_now () + dt; while (clib_cpu_time_now () < t_end) ; } void clib_time_init (clib_time_t * c); #ifdef CLIB_UNIX #include <time.h> #include <sys/time.h> #include <sys/resource.h> #include <unistd.h> #include <sys/syscall.h> /* Use 64bit floating point to represent time offset from epoch. */ always_inline f64 unix_time_now (void) { /* clock_gettime without indirect syscall uses GLIBC wrappers which we don't want. Just the bare metal, please. */ struct timespec ts; syscall (SYS_clock_gettime, CLOCK_REALTIME, &ts); return ts.tv_sec + 1e-9 * ts.tv_nsec; } /* As above but integer number of nano-seconds. */ always_inline u64 unix_time_now_nsec (void) { struct timespec ts; syscall (SYS_clock_gettime, CLOCK_REALTIME, &ts); return 1e9 * ts.tv_sec + ts.tv_nsec; } always_inline void unix_time_now_nsec_fraction (u32 * sec, u32 * nsec) { struct timespec ts; syscall (SYS_clock_gettime, CLOCK_REALTIME, &ts); *sec = ts.tv_sec; *nsec = ts.tv_nsec; } always_inline f64 unix_usage_now (void) { struct rusage u; getrusage (RUSAGE_SELF, &u); return u.ru_utime.tv_sec + 1e-6 * u.ru_utime.tv_usec + u.ru_stime.tv_sec + 1e-6 * u.ru_stime.tv_usec; } always_inline void unix_sleep (f64 dt) { struct timespec ts, tsrem; ts.tv_sec = dt; ts.tv_nsec = 1e9 * (dt - (f64) ts.tv_sec); while (nanosleep (&ts, &tsrem) < 0) ts = tsrem; } #else /* ! CLIB_UNIX */ always_inline f64 unix_time_now (void) { return 0; } always_inline u64 unix_time_now_nsec (void) { return 0; } always_inline void unix_time_now_nsec_fraction (u32 * sec, u32 * nsec) { } always_inline f64 unix_usage_now (void) { return 0; } always_inline void unix_sleep (f64 dt) { } #endif #endif /* included_time_h */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */