没有合适的资源?快使用搜索试试~ 我知道了~
openvswitch转发流程
5星 · 超过95%的资源 需积分: 50 62 下载量 117 浏览量
2014-07-10
09:20:49
上传
评论
收藏 105KB PDF 举报
温馨提示
试读
1页
对openvswitch的2.0版本的主要涉及转发流程及port/bridge/flow table的相关函数进行了汇总列举,比较粗略啊。
资源推荐
资源详情
资源评论
ovs_gre64_vport_ops
gre64_create
gre64_tnl_destroy gre_get_name gre64_send
__send
gre_handle_offloads filter_tnl_flags
__build_header
gre_csum_fix
iptunnel_xmit
ovs_vport_alloc
ovs_vport_deferred_free
gre_exit
ovs_vxlan_vport_ops
vxlan_tnl_create vxlan_tnl_destroy vxlan_get_name vxlan_get_options vxlan_tnl_send
vport_priv
gre_init
gre_cisco_register
gre_rcv
ovs_vport_receive
vxlan_vport vxlan_sock_add
vxlan_rcv
ovs_flow_tun_key_init ovs_vport_receive
vxlan_sock_release
ovs_vport_deferred_free
find_route vxlan_src_port vxlan_xmit_skb
skb_cow_head vlan_set_tci skb_reset_transport_header vxlan_set_owner handle_offloads iptunnel_xmit
ip_local_out
vxlan_init_module vxlan_socket_create
vxlan_udp_encap_recvudp_encap_enable
ovs_netdev_vport_ops
netdev_create netdev_destroy ovs_netdev_get_name netdev_send
netdev_vport_priv
ovs_is_internal_dev
netdev_master_upper_dev_link
netdev_rx_handler_register
dev_set_promiscuity
netdev_frame_hook
netdev_init
skb_gso_segment __vlan_put_tag dev_queue_xmit
ovs_netdev_vport_ops
ovs_lisp_vport_ops
lisp_tnl_create lisp_tnl_destroy lisp_get_name lisp_get_options lisp_tnl_send
ovs_vport_alloc lisp_vport lisp_socket_init
lisp_rcvudp_encap_enable
vxlan_rcv
ovs_flow_tun_key_init ovs_vport_receive
ovs_flow_tun_key_init ovs_tnl_rcv
ovs_vport_receiveskb_reset_mac_header skb_dst_drop skb_clear_rxhash
ovs_tnl_send
handle_offloads ip_local_out ip_rt_put
Ovs_vsctrl.c:main
Ovs_ofctrl.c:main
shash_init process_escape_args parse_commands ovsdb_idl_create run_prerequisites ovsdb_idl_run
ovsrec_bridge_columns_init();
ovsrec_controller_columns_init();
ovsrec_flow_sample_collector_set_columns_init();
ovsrec_flow_table_columns_init();
ovsrec_ipfix_columns_init();
ovsrec_interface_columns_init();
ovsrec_manager_columns_init();
ovsrec_mirror_columns_init();
ovsrec_netflow_columns_init();
ovsrec_open_vswitch_columns_init();
ovsrec_port_columns_init();
ovsrec_qos_columns_init();
ovsrec_queue_columns_init();
ovsrec_ssl_columns_init();
ovsrec_sflow_columns_init()
ovsrec_init parse_options
parse_options
run_command
Ovs_appctrl.c:main
parse_command_line connect_to_target unixctl_client_transact jsonrpc_close
Ovs_controller.c:main
Ovs_dpctrl.c:main
parse_options
run_command
Ovs_vswitchd.c:main
proctitle_init parse_options process_init ovsrec_init daemonize_start unixctl_server_create unixctl_command_register bridge_init
memory_run();
simap_init(&usage);
bridge_get_memory_usage(&usage);
memory_report(&usage);
simap_destroy(&usage);
bridge_run_fast();
bridge_run();
bridge_run_fast();
unixctl_server_run(unixctl);
netdev_run();
signal_wait(sighup);
memory_wait();
bridge_wait();
unixctl_server_wait(unixctl);
netdev_wait();
idl = ovsdb_idl_create(remote, &ovsrec_idl_class, true, true);
idl_seqno = ovsdb_idl_get_seqno(idl);
ovsdb_idl_set_lock(idl, "ovs_vswitchd");
ovsdb_idl_verify_write_only(idl);
ovsdb_idl_omit_alert(idl, &ovsrec_open_vswitch_col_cur_cfg);
ovsdb_idl_omit_alert(idl, &ovsrec_open_vswitch_col_statistics);
ovsdb_idl_omit(idl, &ovsrec_open_vswitch_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_open_vswitch_col_ovs_version);
ovsdb_idl_omit(idl, &ovsrec_open_vswitch_col_db_version);
ovsdb_idl_omit(idl, &ovsrec_open_vswitch_col_system_type);
ovsdb_idl_omit(idl, &ovsrec_open_vswitch_col_system_version);
ovsdb_idl_omit_alert(idl, &ovsrec_bridge_col_datapath_id);
ovsdb_idl_omit_alert(idl, &ovsrec_bridge_col_status);
ovsdb_idl_omit(idl, &ovsrec_bridge_col_external_ids);
ovsdb_idl_omit_alert(idl, &ovsrec_port_col_status);
ovsdb_idl_omit_alert(idl, &ovsrec_port_col_statistics);
ovsdb_idl_omit(idl, &ovsrec_port_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_port_col_fake_bridge);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_admin_state);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_duplex);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_link_speed);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_link_state);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_link_resets);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_mac_in_use);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_ifindex);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_mtu);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_ofport);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_statistics);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_status);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_cfm_fault);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_cfm_fault_status);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_cfm_remote_mpids);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_cfm_health);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_cfm_remote_opstate);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_bfd_status);
ovsdb_idl_omit_alert(idl, &ovsrec_interface_col_lacp_current);
ovsdb_idl_omit(idl, &ovsrec_interface_col_external_ids);
ovsdb_idl_omit_alert(idl, &ovsrec_controller_col_is_connected);
ovsdb_idl_omit_alert(idl, &ovsrec_controller_col_role);
ovsdb_idl_omit_alert(idl, &ovsrec_controller_col_status);
ovsdb_idl_omit(idl, &ovsrec_controller_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_qos_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_queue_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_mirror_col_external_ids);
ovsdb_idl_omit_alert(idl, &ovsrec_mirror_col_statistics);
ovsdb_idl_omit(idl, &ovsrec_netflow_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_sflow_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_ipfix_col_external_ids);
ovsdb_idl_omit(idl,
&ovsrec_flow_sample_collector_set_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_manager_col_external_ids);
ovsdb_idl_omit(idl, &ovsrec_manager_col_inactivity_probe);
ovsdb_idl_omit(idl, &ovsrec_manager_col_is_connected);
ovsdb_idl_omit(idl, &ovsrec_manager_col_max_backoff);
ovsdb_idl_omit(idl, &ovsrec_manager_col_status);
ovsdb_idl_omit(idl, &ovsrec_ssl_col_external_ids);
/* Register unixctl commands. */
unixctl_command_register("qos/show", "interface", 1, 1,
qos_unixctl_show, NULL);
unixctl_command_register("bridge/dump-flows", "bridge", 1, 1,
bridge_unixctl_dump_flows, NULL);
unixctl_command_register("bridge/reconnect", "[bridge]", 0, 1,
bridge_unixctl_reconnect, NULL);
lacp_init();
bond_init();
cfm_init();
stp_init();
proctitle_init parse_options vconn_open new_switch daemonize_start unixctl_server_create daemonize_complete unixctl_server_run unixctl_server_wait
gre_rcv:Gre/gre64
vxlan_rcv:vxlan ovs_tnl_rcv:lisp
netdev_port_receive:netdev
ovs_vport_receive
ovs_dp_process_received_packet
ovs_flow_extract ovs_flow_lookup ovs_flow_used ovs_execute_actions
do_execute_actions
do_output
ovs_vport_send
vport->ops->send(vport, skb)
output_userspacenla_get_u32
ovs_dp_upcall
get_dpifindex queue_userspace_packet queue_gso_packets
push_vlan pop_vlan execute_set_action sample
Ovs_vport_init
Ovs_vport_exit
Ovs_vport_add
Ovs_vport_del
Ovs_vport_locate
Ovs_vport_set_stats
ovs_vport_get_stats
Ovs_vport_set_options
Ovs_vport_get_options
ovs_vport_send
Bridge_init
Bridge_exit
Bridge_run
Bridge_run_fast
Bridge_waitbridge_get_memory_usage
Add_del_bridges
Bridge_add_ports
bridge_del_ports
Iface_create
iface_destroy
Bridge_create
Bridge_destroy
Mirror_create
mirror_destroy
Ovs_flow_lookup
Ovs_flow_lookup_unmasked_key
Ovs_flow_extract
Ovs_flow_used
Ovs_flow_used_time
ovs_flow_to_nlattrs
Ovs_flow_tbl_alloc
Ovs_flow_tbl_expand
Ovs_flow_tbl_rehash
Ovs_flow_dump_next
Ovs_flow_alloc
Ovs_flow_deferred_free
Ovs_flow_free
Ovs_flow_insert
ovs_flow_remove
Ovs_flow_actions_alloc
Ovs_flow_deferred_free_acts
Ovs_ipv4_tun_from_nlattr
ovs_ipv4_tun_to_nlattr
ovs_flow_cmp_unmasked_key
struct flow_table {
struct flex_array *buckets;
unsigned int count, n_buckets;
struct rcu_head rcu;
struct list_head *mask_list;
int node_ver;
u32 hash_seed;
bool keep_flows;
};
struct vport {
struct rcu_head rcu;
struct datapath *dp;
u32 upcall_portid;
u16 port_no;
struct hlist_node hash_node;
struct hlist_node dp_hash_node;
const struct vport_ops *ops;
struct pcpu_tstats __percpu *percpu_stats;
spinlock_t stats_lock;
struct vport_err_stats err_stats;
struct ovs_vport_stats offset_stats;
};
struct bridge {
struct hmap_node node; /* In 'all_bridges'. */
char *name; /* User-specified arbitrary name.
*/
char *type; /* Datapath type. */
uint8_t ea[ETH_ADDR_LEN]; /* Bridge Ethernet Address. */
uint8_t default_ea[ETH_ADDR_LEN]; /* Default MAC. */
const struct ovsrec_bridge *cfg;
/* OpenFlow switch processing. */
struct ofproto *ofproto; /* OpenFlow switch. */
/* Bridge ports. */
struct hmap ports; /* "struct port"s indexed by name.
*/
struct hmap ifaces; /* "struct iface"s indexed by
ofp_port. */
struct hmap iface_by_name; /* "struct iface"s indexed by name.
*/
struct list ofpp_garbage; /* "struct ofpp_garbage" slated for
removal. */
struct hmap if_cfg_todo; /* "struct if_cfg"s slated for
creation.
Indexed on 'cfg->name'. */
/* Port mirroring. */
struct hmap mirrors; /* "struct mirror" indexed by UUID.
*/
/* Synthetic local port if necessary. */
struct ovsrec_port synth_local_port;
struct ovsrec_interface synth_local_iface;
struct ovsrec_interface *synth_local_ifacep;
};
Sw_flow_actions
Sw_flow_key
Sw_flow_key_range
sw_flow_match
Ovs报文转发流程相关代码
gre64_send:gre64 Vxlan_tnl_send:vxlan Lisp_tnl_send:lisp Internal_dev_recv:internal_vport
Internal_dev_recv:internal_vport
ovs_gre_vport_ops
gre_create
gre_tnl_destroy gre_get_name gre_send
__send
gre_handle_offloads filter_tnl_flags
__build_header
gre_csum_fix
iptunnel_xmit
ovs_vport_deferred_free
gre_exit
vport_priv
gre_init
gre_cisco_register
gre_rcv
ovs_vport_receive
gre_send:gre
ofproto_run
run_rule_executes connmgr_run ofproto_evict
in_band_run ofmonitor_runofconn_run pvconn_accept rconn_create ofconn_create
Ovs_client.c:main
proctitle_init parse_options get_all_commands svec_init svec_contains xstrdup
Ovsdb_server.c:main
Proctitle_init
process_init
parse_options
Daemonize_start
daemonize_complete
shash_init
Open_db
Reconfigure_remotes
Unixctl_server_create
Unixctl_command_register
Simap_init
Unixctl_server_run
ovsdb_jsonrpc_server_run
Process_start
Update_remote_status
ovsdb_trigger_run
Sset_init
sset_add
Save_config_
load_config
ovs_dp_upcall
资源评论
- jiangyytt2015-11-18不错,正是我想要的
- code_time2015-01-18代码实现结构讲的很清晰
night_elf_1020
- 粉丝: 168
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功