-/* Functions for use by ofproto implementation modules, not by clients. */
-int ofproto_send_packet(struct ofproto *, const struct flow *,
- const union ofp_action *, size_t n_actions,
- const struct ofpbuf *);
-void ofproto_add_flow(struct ofproto *, const struct cls_rule *,
- const union ofp_action *, size_t n_actions);
-void ofproto_delete_flow(struct ofproto *, const struct cls_rule *);
-void ofproto_flush_flows(struct ofproto *);
-
-/* Hooks for ovs-vswitchd. */
-struct ofhooks {
- bool (*normal_cb)(const struct flow *, const struct ofpbuf *packet,
- struct ofpbuf *odp_actions, tag_type *,
- uint16_t *nf_output_iface, void *aux);
- bool (*special_cb)(const struct flow *flow, const struct ofpbuf *packet,
- void *aux);
- void (*account_flow_cb)(const struct flow *, tag_type tags,
- const struct nlattr *odp_actions,
- size_t actions_len,
- uint64_t n_bytes, void *aux);
- void (*account_checkpoint_cb)(void *aux);
+ int vlan; /* VLAN if access port, -1 if trunk port. */
+ unsigned long *trunks; /* vlan_bitmap, NULL to trunk all VLANs. */
+
+ struct bond_settings *bond; /* Must be nonnull iff if n_slaves > 1. */
+ uint32_t *bond_stable_ids; /* Array of n_slaves elements. */
+
+ struct lacp_settings *lacp; /* Nonnull to enable LACP. */
+ struct lacp_slave_settings *lacp_slaves; /* Array of n_slaves elements. */
+};
+
+int ofproto_bundle_register(struct ofproto *, void *aux,
+ const struct ofproto_bundle_settings *);
+int ofproto_bundle_unregister(struct ofproto *, void *aux);
+
+/* Configuration of mirrors. */
+struct ofproto_mirror_settings {
+ /* Name for log messages. */
+ char *name;
+
+ /* Bundles that select packets for mirroring upon ingress. */
+ void **srcs; /* A set of registered ofbundle handles. */
+ size_t n_srcs;
+
+ /* Bundles that select packets for mirroring upon egress. */
+ void **dsts; /* A set of registered ofbundle handles. */
+ size_t n_dsts;
+
+ /* VLANs of packets to select for mirroring. */
+ unsigned long *src_vlans; /* vlan_bitmap, NULL selects all VLANs. */
+
+ /* Output (mutually exclusive). */
+ void *out_bundle; /* A registered ofbundle handle or NULL. */
+ uint16_t out_vlan; /* Output VLAN, only if out_bundle is NULL. */