summaryrefslogtreecommitdiffstats
path: root/src/vnet/session
ModeNameSize
-rw-r--r--FEATURE.yaml1526logstatsplain
-rw-r--r--application.c55432logstatsplain
-rw-r--r--application.h12707logstatsplain
-rw-r--r--application_interface.c4312logstatsplain
-rw-r--r--application_interface.h23347logstatsplain
-rw-r--r--application_local.c31267logstatsplain
-rw-r--r--application_local.h1921logstatsplain
-rw-r--r--application_namespace.c13140logstatsplain
-rw-r--r--application_namespace.h4539logstatsplain
-rw-r--r--application_worker.c20096logstatsplain
-rw-r--r--mma_16.h984logstatsplain
-rw-r--r--mma_40.h985logstatsplain
-rw-r--r--mma_template.c7092logstatsplain
-rw-r--r--mma_template.h2505logstatsplain
-rw-r--r--segment_manager.c30387logstatsplain
-rw-r--r--segment_manager.h6577logstatsplain
-rw-r--r--session.api13200logstatsplain
-rw-r--r--session.c57896logstatsplain
-rw-r--r--session.h22781logstatsplain
-rw-r--r--session_api.c52173logstatsplain
-rw-r--r--session_cli.c22817logstatsplain
-rw-r--r--session_debug.c7288logstatsplain
-rw-r--r--session_debug.h11616logstatsplain
-rw-r--r--session_lookup.c48662logstatsplain
-rw-r--r--session_lookup.h5280logstatsplain
-rw-r--r--session_node.c57074logstatsplain
-rw-r--r--session_rules_table.c19506logstatsplain
-rw-r--r--session_rules_table.h3457logstatsplain
-rw-r--r--session_table.c5537logstatsplain
-rw-r--r--session_table.h2663logstatsplain
-rw-r--r--session_types.h16663logstatsplain
-rw-r--r--transport.c21756logstatsplain
-rw-r--r--transport.h10951logstatsplain
-rw-r--r--transport_types.h9927logstatsplain
s="p">(s, "DELETED:%d", rw->sw_if_index); } s = format (s, " mtu:%d next:%d", rw->max_l3_packet_bytes, rw->next_index); /* Format rewrite string. */ if (rw->data_bytes > 0) s = format (s, " %U", format_hex_bytes, rw->data, rw->data_bytes); return s; } u32 vnet_tx_node_index_for_sw_interface (vnet_main_t * vnm, u32 sw_if_index) { vnet_hw_interface_t *hw = vnet_get_sup_hw_interface (vnm, sw_if_index); return (hw->output_node_index); } void vnet_rewrite_init (vnet_main_t * vnm, u32 sw_if_index, vnet_link_t linkt, u32 this_node, u32 next_node, vnet_rewrite_header_t * rw) { rw->sw_if_index = sw_if_index; rw->next_index = vlib_node_add_next (vnm->vlib_main, this_node, next_node); rw->max_l3_packet_bytes = vnet_sw_interface_get_mtu (vnm, sw_if_index, vnet_link_to_mtu (linkt)); } void vnet_rewrite_update_mtu (vnet_main_t * vnm, vnet_link_t linkt, vnet_rewrite_header_t * rw) { rw->max_l3_packet_bytes = vnet_sw_interface_get_mtu (vnm, rw->sw_if_index, vnet_link_to_mtu (linkt)); } void vnet_rewrite_for_sw_interface (vnet_main_t * vnm, vnet_link_t link_type, u32 sw_if_index, u32 node_index, void *dst_address, vnet_rewrite_header_t * rw, u32 max_rewrite_bytes) { vnet_hw_interface_t *hw = vnet_get_sup_hw_interface (vnm, sw_if_index); vnet_hw_interface_class_t *hc = vnet_get_hw_interface_class (vnm, hw->hw_class_index); u8 *rewrite = NULL; vnet_rewrite_init (vnm, sw_if_index, link_type, node_index, vnet_tx_node_index_for_sw_interface (vnm, sw_if_index), rw); ASSERT (hc->build_rewrite); rewrite = hc->build_rewrite (vnm, sw_if_index, link_type, dst_address); ASSERT (vec_len (rewrite) < max_rewrite_bytes); vnet_rewrite_set_data_internal (rw, max_rewrite_bytes, rewrite, vec_len (rewrite)); vec_free (rewrite); } void serialize_vnet_rewrite (serialize_main_t * m, va_list * va) { vnet_rewrite_header_t *rw = va_arg (*va, vnet_rewrite_header_t *); u32 max_data_bytes = va_arg (*va, u32); u8 *p; serialize_integer (m, rw->sw_if_index, sizeof (rw->sw_if_index)); serialize_integer (m, rw->data_bytes, sizeof (rw->data_bytes)); serialize_integer (m, rw->max_l3_packet_bytes, sizeof (rw->max_l3_packet_bytes)); p = serialize_get (m, rw->data_bytes); clib_memcpy (p, vnet_rewrite_get_data_internal (rw, max_data_bytes), rw->data_bytes); } void unserialize_vnet_rewrite (serialize_main_t * m, va_list * va) { vnet_rewrite_header_t *rw = va_arg (*va, vnet_rewrite_header_t *); u32 max_data_bytes = va_arg (*va, u32); u8 *p; /* It is up to user to fill these in. */ rw->next_index = ~0; unserialize_integer (m, &rw->sw_if_index, sizeof (rw->sw_if_index)); unserialize_integer (m, &rw->data_bytes, sizeof (rw->data_bytes)); unserialize_integer (m, &rw->max_l3_packet_bytes, sizeof (rw->max_l3_packet_bytes)); p = unserialize_get (m, rw->data_bytes); clib_memcpy (vnet_rewrite_get_data_internal (rw, max_data_bytes), p, rw->data_bytes); } u8 * vnet_build_rewrite_for_sw_interface (vnet_main_t * vnm, u32 sw_if_index, vnet_link_t link_type, const void *dst_address) { vnet_hw_interface_t *hw = vnet_get_sup_hw_interface (vnm, sw_if_index); vnet_hw_interface_class_t *hc = vnet_get_hw_interface_class (vnm, hw->hw_class_index); ASSERT (hc->build_rewrite); return (hc->build_rewrite (vnm, sw_if_index, link_type, dst_address)); } void vnet_update_adjacency_for_sw_interface (vnet_main_t * vnm, u32 sw_if_index, u32 ai) { vnet_hw_interface_t *hw = vnet_get_sup_hw_interface (vnm, sw_if_index); vnet_hw_interface_class_t *hc = vnet_get_hw_interface_class (vnm, hw->hw_class_index); ASSERT (hc->update_adjacency); hc->update_adjacency (vnm, sw_if_index, ai); } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */