summaryrefslogtreecommitdiffstats
path: root/test/test_nat.py
AgeCommit message (Expand)AuthorFilesLines
2019-01-30Use IP and MAC API types for neighborsNeale Ranns1-30/+44
2019-01-18VTL: Don't swallow exceptions from syslog_rfc5424_parserPaul Vinciguerra1-6/+11
2018-12-21MAP: Convert from DPO to input feature.Jon Loeliger1-2/+1
2018-12-20NAT: total users and sessions gauges (VPP-1484)Matus Fabian1-0/+33
2018-12-20Tests: Cleanup @skip decorator.Paul Vinciguerra1-10/+10
2018-12-18NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514)Matus Fabian1-0/+60
2018-12-18PAPI: Add MACAddress object wrapper for vl_api_mac_address_tOle Troan1-7/+7
2018-12-14NAT: counters (VPP-1484)Matus Fabian1-1/+115
2018-12-10Test framework: StringIO fixes for Python3Ole Troan1-6/+6
2018-11-30Tests: Fix traceback.Paul Vinciguerra1-15/+14
2018-11-29NAT: syslog - sessions logging (VPP-1139)Matus Fabian1-1/+173
2018-11-26Python3 tests: Fix asserts.Paul Vinciguerra1-4/+4
2018-11-23NAT44: improve expired sessions reuse (VPP-1503)Matus Fabian1-17/+2
2018-11-22MAP: Use explicit address/prefix types in APIOle Troan1-0/+2
2018-11-22NAT44: Apply transitory timeout on TCP RST (VPP-1494)Matus Fabian1-0/+51
2018-11-20NAT44: fix virtual fragmentation reassembly in forwarding mode (VPP-1501)Matus Fabian1-0/+26
2018-11-19NAT44: fix bug in TCP close with output-feature interface (VPP-1493)Matus Fabian1-0/+82
2018-10-19NAT44: fix ICMP virtual fragmentation reassembly (VPP-1466)Matus Fabian1-109/+22
2018-10-12NAT44: identity NAT fix (VPP-1441)Matus Fabian1-0/+4
2018-10-08NAT44: do not create session record for identity mapping (VPP-1439)Matus Fabian1-0/+3
2018-09-24NAT44: endpoint-dependent mode session timeout improvement (VPP-1423)Matus Fabian1-0/+10
2018-09-20NAT44 virtual fragmentation reassembly for endpoint-dependent mode (VPP-1325)Juraj Sloboda1-16/+518
2018-09-13NAT: TCP MSS clampingMatus Fabian1-0/+52
2018-09-06NAT: fix maximum out of order fragments (VPP-1399)Matus Fabian1-6/+8
2018-09-06NAT: test cleanup (VPP-1252)Matus Fabian1-30/+11
2018-09-04NAT: add support for configurable port range (VPP-1346)Matus Fabian1-3/+32
2018-09-03NAT44: client-IP based session affinity for load-balancing (VPP-1297)Matus Fabian1-0/+61
2018-08-27NAT44: add support for session timeout (VPP-1272)Matus Fabian1-40/+185
2018-08-22NAT: update nat_show_config_reply API (VPP-1403)Matus Fabian1-0/+12
2018-08-15NAT44: fix next_src_nat (VPP-1384)Matus Fabian1-0/+57
2018-08-15NAT64: fix TCP session expire (VPP-1390)Matus Fabian1-3/+3
2018-08-09NAT44: delete user with zero sessions (VPP-1282)Matus Fabian1-0/+12
2018-08-02NAT44: LB NAT - local backends in multiple VRFs (VPP-1345)Matus Fabian1-9/+16
2018-07-23NAT44: fix forwarding feature bug (VPP-1349)Matus Fabian1-16/+3
2018-07-10NAT44: multiple outside FIB tables (VPP-1314)Matus Fabian1-21/+442
2018-07-10Do not translate packets destined for NAT64 inside interface (VPP-1331)Juraj Sloboda1-2/+60
2018-06-26NAT44: fix nat44_ed_not_translate_output_feature (VPP-1329)Matus Fabian1-0/+25
2018-06-15NAT44: endpoint dependent mode (VPP-1273)Matus Fabian1-936/+1105
2018-05-28NAT44: code cleanup and refactor (VPP-1285)Matus Fabian1-136/+150
2018-05-17NAT44: nat44_del_session and nat44_user_session_details API update (VPP-1271)Matus Fabian1-24/+54
2018-05-16make test: unify packet checksum verificationsKlement Sekera1-234/+65
2018-05-14NAT44: delete closed TCP session (VPP-1274)Matus Fabian1-3/+3
2018-05-10NAT44: sessions counters per user fix (VPP-1270)Matus Fabian1-0/+25
2018-05-08NAT44: TCP connection close detection (VPP-1266)Matus Fabian1-44/+233
2018-04-24NAT44: one-armed NAT and identity mapping (VPP-1212)Matus Fabian1-0/+3
2018-04-19Add special Twice-NAT feature (VPP-1221)Juraj Sloboda1-96/+125
2018-04-13NAT66: Do not translate if packet not aimed at outside interfaceJuraj Sloboda1-0/+23
2018-03-28NAT44: make 1:1NAT for DHCP addressed interface persistentMatus Fabian1-12/+48
2018-03-22NAT44: interface output feature and dst NAT (VPP-1200)Matus Fabian1-0/+59
2018-03-12NAT44: fix nat_not_translate_output_feature for ICMP (VPP-1191)Matus Fabian1-37/+42
">0]; pi1 = from[1]; to_next[0] = pi0; to_next[1] = pi1; from += 2; to_next += 2; n_left_from -= 2; n_left_to_next -= 2; p0 = vlib_get_buffer (vm, pi0); p1 = vlib_get_buffer (vm, pi1); ip0 = vlib_buffer_get_current (p0); ip1 = vlib_buffer_get_current (p1); sw_if_index0 = vnet_buffer (p0)->sw_if_index[VLIB_RX]; sw_if_index1 = vnet_buffer (p1)->sw_if_index[VLIB_RX]; if (PREDICT_FALSE (ip6_address_is_multicast (&ip0->dst_address))) { arc0 = lm->mcast_feature_arc_index; next0 = IP6_INPUT_NEXT_LOOKUP_MULTICAST; } else { arc0 = lm->ucast_feature_arc_index; next0 = IP6_INPUT_NEXT_LOOKUP; } if (PREDICT_FALSE (ip6_address_is_multicast (&ip1->dst_address))) { arc1 = lm->mcast_feature_arc_index; next1 = IP6_INPUT_NEXT_LOOKUP_MULTICAST; } else { arc1 = lm->ucast_feature_arc_index; next1 = IP6_INPUT_NEXT_LOOKUP; } vnet_buffer (p0)->ip.adj_index[VLIB_RX] = ~0; vnet_buffer (p1)->ip.adj_index[VLIB_RX] = ~0; vnet_feature_arc_start (arc0, sw_if_index0, &next0, p0); vnet_feature_arc_start (arc1, sw_if_index1, &next1, p1); vlib_increment_simple_counter (cm, thread_index, sw_if_index0, 1); vlib_increment_simple_counter (cm, thread_index, sw_if_index1, 1); ip6_input_check_x2 (vm, error_node, p0, p1, ip0, ip1, &next0, &next1); vlib_validate_buffer_enqueue_x2 (vm, node, next_index, to_next, n_left_to_next, pi0, pi1, next0, next1); } while (n_left_from > 0 && n_left_to_next > 0) { vlib_buffer_t *p0; ip6_header_t *ip0; u32 pi0, sw_if_index0, next0 = 0; u8 arc0; pi0 = from[0]; to_next[0] = pi0; from += 1; to_next += 1; n_left_from -= 1; n_left_to_next -= 1; p0 = vlib_get_buffer (vm, pi0); ip0 = vlib_buffer_get_current (p0); sw_if_index0 = vnet_buffer (p0)->sw_if_index[VLIB_RX]; if (PREDICT_FALSE (ip6_address_is_multicast (&ip0->dst_address))) { arc0 = lm->mcast_feature_arc_index; next0 = IP6_INPUT_NEXT_LOOKUP_MULTICAST; } else { arc0 = lm->ucast_feature_arc_index; next0 = IP6_INPUT_NEXT_LOOKUP; } vnet_buffer (p0)->ip.adj_index[VLIB_RX] = ~0; vnet_feature_arc_start (arc0, sw_if_index0, &next0, p0); vlib_increment_simple_counter (cm, thread_index, sw_if_index0, 1); ip6_input_check_x1 (vm, error_node, p0, ip0, &next0); vlib_validate_buffer_enqueue_x1 (vm, node, next_index, to_next, n_left_to_next, pi0, next0); } vlib_put_next_frame (vm, node, next_index, n_left_to_next); } return frame->n_vectors; } #ifndef CLIB_MARCH_VARIANT char *ip6_error_strings[] = { #define _(sym,string) string, foreach_ip6_error #undef _ }; #endif /* CLIB_MARCH_VARIANT */ /* *INDENT-OFF* */ VLIB_REGISTER_NODE (ip6_input_node) = { .name = "ip6-input", .vector_size = sizeof (u32), .n_errors = IP6_N_ERROR, .error_strings = ip6_error_strings, .n_next_nodes = IP6_INPUT_N_NEXT, .next_nodes = { [IP6_INPUT_NEXT_DROP] = "error-drop", [IP6_INPUT_NEXT_LOOKUP] = "ip6-lookup", [IP6_INPUT_NEXT_ICMP_ERROR] = "ip6-icmp-error", [IP6_INPUT_NEXT_LOOKUP_MULTICAST] = "ip6-mfib-forward-lookup", }, .format_buffer = format_ip6_header, .format_trace = format_ip6_input_trace, }; /* *INDENT-ON* */ static clib_error_t * ip6_init (vlib_main_t * vm) { ethernet_register_input_type (vm, ETHERNET_TYPE_IP6, ip6_input_node.index); ppp_register_input_protocol (vm, PPP_PROTOCOL_ip6, ip6_input_node.index); hdlc_register_input_protocol (vm, HDLC_PROTOCOL_ip6, ip6_input_node.index); { pg_node_t *pn; pn = pg_get_node (ip6_input_node.index); pn->unformat_edit = unformat_pg_ip6_header; } /* Set flow hash to something non-zero. */ ip6_main.flow_hash_seed = 0xdeadbeef; /* Default hop limit for packets we generate. */ ip6_main.host_config.ttl = 64; return /* no error */ 0; } VLIB_INIT_FUNCTION (ip6_init); static clib_error_t * ip6_main_loop_enter (vlib_main_t * vm) { ip6_main_t *im = &ip6_main; vlib_thread_main_t *tm = &vlib_thread_main; throttle_init (&im->nd_throttle, tm->n_vlib_mains, 1e-3); return 0; } VLIB_MAIN_LOOP_ENTER_FUNCTION (ip6_main_loop_enter); /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */