mirror of
https://github.com/openvswitch/ovs
synced 2025-10-23 14:57:06 +00:00
Define a new NXAST_SAMPLE OpenFlow vendor action and the corresponding OFPACT_SAMPLE OVS action, to do per-flow packet sampling, translated into a new SAMPLE "flow_sample" dp action. Make the userspace action's userdata size vary depending on the union member used. Add a new "flow_sample" upcall to do per-flow packet sampling. Add a new "ipfix" upcall to do per-bridge packet sampling to IPFIX collectors. Extend the OVSDB schema to support configuring IPFIX collector sets. Add support for configuring multiple IPFIX collectors for per-flow packet sampling. Add support for configuring per-bridge IPFIX sampling. Automatically generate standard IPFIX entity definitions from the IANA specs. Send one IPFIX data record message for every packet sampled by an OpenFlow sample action or received by a bridge configured with IPFIX sampling, and periodically send IPFIX template set messages. Signed-off-by: Romain Lenglet <rlenglet@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
79 lines
4.7 KiB
C
79 lines
4.7 KiB
C
/* -*- c -*- */
|
|
|
|
#ifndef OFPAT10_ACTION
|
|
#define OFPAT10_ACTION(ENUM, STRUCT, NAME)
|
|
#endif
|
|
OFPAT10_ACTION(OFPAT10_OUTPUT, ofp10_action_output, "output")
|
|
OFPAT10_ACTION(OFPAT10_SET_VLAN_VID, ofp_action_vlan_vid, "mod_vlan_vid")
|
|
OFPAT10_ACTION(OFPAT10_SET_VLAN_PCP, ofp_action_vlan_pcp, "mod_vlan_pcp")
|
|
OFPAT10_ACTION(OFPAT10_STRIP_VLAN, ofp_action_header, "strip_vlan")
|
|
OFPAT10_ACTION(OFPAT10_SET_DL_SRC, ofp_action_dl_addr, "mod_dl_src")
|
|
OFPAT10_ACTION(OFPAT10_SET_DL_DST, ofp_action_dl_addr, "mod_dl_dst")
|
|
OFPAT10_ACTION(OFPAT10_SET_NW_SRC, ofp_action_nw_addr, "mod_nw_src")
|
|
OFPAT10_ACTION(OFPAT10_SET_NW_DST, ofp_action_nw_addr, "mod_nw_dst")
|
|
OFPAT10_ACTION(OFPAT10_SET_NW_TOS, ofp_action_nw_tos, "mod_nw_tos")
|
|
OFPAT10_ACTION(OFPAT10_SET_TP_SRC, ofp_action_tp_port, "mod_tp_src")
|
|
OFPAT10_ACTION(OFPAT10_SET_TP_DST, ofp_action_tp_port, "mod_tp_dst")
|
|
OFPAT10_ACTION(OFPAT10_ENQUEUE, ofp10_action_enqueue, "enqueue")
|
|
|
|
#ifndef OFPAT11_ACTION
|
|
#define OFPAT11_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME)
|
|
#endif
|
|
OFPAT11_ACTION(OFPAT11_OUTPUT, ofp11_action_output, 0, "output")
|
|
OFPAT11_ACTION(OFPAT11_SET_VLAN_VID, ofp_action_vlan_vid, 0, "mod_vlan_vid")
|
|
OFPAT11_ACTION(OFPAT11_SET_VLAN_PCP, ofp_action_vlan_pcp, 0, "mod_vlan_pcp")
|
|
OFPAT11_ACTION(OFPAT11_SET_DL_SRC, ofp_action_dl_addr, 0, "mod_dl_src")
|
|
OFPAT11_ACTION(OFPAT11_SET_DL_DST, ofp_action_dl_addr, 0, "mod_dl_dst")
|
|
OFPAT11_ACTION(OFPAT11_SET_NW_SRC, ofp_action_nw_addr, 0, "mod_nw_src")
|
|
OFPAT11_ACTION(OFPAT11_SET_NW_DST, ofp_action_nw_addr, 0, "mod_nw_dst")
|
|
OFPAT11_ACTION(OFPAT11_SET_NW_TOS, ofp_action_nw_tos, 0, "mod_nw_tos")
|
|
//OFPAT11_ACTION(OFPAT11_SET_NW_ECN, ofp11_action_nw_ecn, "0, mod_nw_ecn")
|
|
OFPAT11_ACTION(OFPAT11_SET_TP_SRC, ofp_action_tp_port, 0, "mod_tp_src")
|
|
OFPAT11_ACTION(OFPAT11_SET_TP_DST, ofp_action_tp_port, 0, "mod_tp_dst")
|
|
OFPAT11_ACTION(OFPAT11_SET_MPLS_TTL, ofp11_action_mpls_ttl, 0, "set_mpls_ttl")
|
|
OFPAT11_ACTION(OFPAT11_DEC_MPLS_TTL, ofp_action_header, 0, "dec_mpls_ttl")
|
|
OFPAT11_ACTION(OFPAT11_PUSH_VLAN, ofp11_action_push, 0, "push_vlan")
|
|
OFPAT11_ACTION(OFPAT11_POP_VLAN, ofp_action_header, 0, "pop_vlan")
|
|
OFPAT11_ACTION(OFPAT11_PUSH_MPLS, ofp11_action_push, 0, "push_mpls")
|
|
OFPAT11_ACTION(OFPAT11_POP_MPLS, ofp11_action_pop_mpls, 0, "pop_mpls")
|
|
OFPAT11_ACTION(OFPAT11_SET_QUEUE, ofp11_action_set_queue, 0, "set_queue")
|
|
//OFPAT11_ACTION(OFPAT11_SET_NW_TTL, ofp11_action_nw_ttl, 0, "set_nw_ttl")
|
|
OFPAT11_ACTION(OFPAT11_DEC_NW_TTL, ofp_action_header, 0, NULL)
|
|
OFPAT11_ACTION(OFPAT12_SET_FIELD, ofp12_action_set_field, 1, "set_field")
|
|
|
|
#ifndef NXAST_ACTION
|
|
#define NXAST_ACTION(ENUM, STRUCT, EXTENSIBLE, NAME)
|
|
#endif
|
|
NXAST_ACTION(NXAST_RESUBMIT, nx_action_resubmit, 0, "resubmit")
|
|
NXAST_ACTION(NXAST_SET_TUNNEL, nx_action_set_tunnel, 0, "set_tunnel")
|
|
NXAST_ACTION(NXAST_SET_QUEUE, nx_action_set_queue, 0, "set_queue")
|
|
NXAST_ACTION(NXAST_POP_QUEUE, nx_action_pop_queue, 0, "pop_queue")
|
|
NXAST_ACTION(NXAST_REG_MOVE, nx_action_reg_move, 0, "move")
|
|
NXAST_ACTION(NXAST_REG_LOAD, nx_action_reg_load, 0, "load")
|
|
NXAST_ACTION(NXAST_STACK_PUSH, nx_action_stack, 0, "push")
|
|
NXAST_ACTION(NXAST_STACK_POP, nx_action_stack, 0, "pop")
|
|
NXAST_ACTION(NXAST_NOTE, nx_action_note, 1, "note")
|
|
NXAST_ACTION(NXAST_SET_TUNNEL64, nx_action_set_tunnel64, 0, "set_tunnel64")
|
|
NXAST_ACTION(NXAST_MULTIPATH, nx_action_multipath, 0, "multipath")
|
|
NXAST_ACTION(NXAST_BUNDLE, nx_action_bundle, 1, "bundle")
|
|
NXAST_ACTION(NXAST_BUNDLE_LOAD, nx_action_bundle, 1, "bundle_load")
|
|
NXAST_ACTION(NXAST_RESUBMIT_TABLE, nx_action_resubmit, 0, NULL)
|
|
NXAST_ACTION(NXAST_OUTPUT_REG, nx_action_output_reg, 0, NULL)
|
|
NXAST_ACTION(NXAST_LEARN, nx_action_learn, 1, "learn")
|
|
NXAST_ACTION(NXAST_EXIT, nx_action_header, 0, "exit")
|
|
NXAST_ACTION(NXAST_DEC_TTL, nx_action_header, 0, "dec_ttl")
|
|
NXAST_ACTION(NXAST_FIN_TIMEOUT, nx_action_fin_timeout, 0, "fin_timeout")
|
|
NXAST_ACTION(NXAST_CONTROLLER, nx_action_controller, 0, "controller")
|
|
NXAST_ACTION(NXAST_DEC_TTL_CNT_IDS, nx_action_cnt_ids, 1, NULL)
|
|
NXAST_ACTION(NXAST_WRITE_METADATA, nx_action_write_metadata, 0,
|
|
"write_metadata")
|
|
NXAST_ACTION(NXAST_SET_MPLS_TTL, nx_action_mpls_ttl, 0, "set_mpls_ttl")
|
|
NXAST_ACTION(NXAST_DEC_MPLS_TTL, nx_action_header, 0, "dec_mpls_ttl")
|
|
NXAST_ACTION(NXAST_PUSH_MPLS, nx_action_push_mpls, 0, "push_mpls")
|
|
NXAST_ACTION(NXAST_POP_MPLS, nx_action_pop_mpls, 0, "pop_mpls")
|
|
NXAST_ACTION(NXAST_SAMPLE, nx_action_sample, 0, "sample")
|
|
|
|
#undef OFPAT10_ACTION
|
|
#undef OFPAT11_ACTION
|
|
#undef NXAST_ACTION
|