Lines Matching defs:vport

20 struct vport;
23 /* The following definitions are for users of the vport subsystem: */
28 struct vport *ovs_vport_add(const struct vport_parms *);
29 void ovs_vport_del(struct vport *);
31 struct vport *ovs_vport_locate(const struct net *net, const char *name);
33 void ovs_vport_get_stats(struct vport *, struct ovs_vport_stats *);
35 int ovs_vport_get_upcall_stats(struct vport *vport, struct sk_buff *skb);
37 int ovs_vport_set_options(struct vport *, struct nlattr *options);
38 int ovs_vport_get_options(const struct vport *, struct sk_buff *);
40 int ovs_vport_set_upcall_portids(struct vport *, const struct nlattr *pids);
41 int ovs_vport_get_upcall_portids(const struct vport *, struct sk_buff *);
42 u32 ovs_vport_find_upcall_portid(const struct vport *, struct sk_buff *);
45 * struct vport_portids - array of netlink portids of a vport.
61 * struct vport - one port within a datapath
67 * @hash_node: Element in @dev_table hash table in vport.c.
71 * @detach_list: list used for detaching vport in net-exit call.
74 struct vport {
91 * struct vport_parms - parameters for creating a new vport
93 * @name: New vport's name.
94 * @type: New vport's type.
97 * @desired_ifindex: New vport's ifindex.
98 * @dp: New vport's datapath.
99 * @port_no: New vport's port number.
117 * @create: Create a new vport configured as specified. On success returns
118 * a new vport allocated with ovs_vport_alloc(), otherwise an ERR_PTR() value.
119 * @destroy: Destroys a vport. Must call vport_free() on the vport but not
121 * @set_options: Modify the configuration of an existing vport. May be %NULL
123 * @get_options: Appends vport-specific attributes for the configuration of an
124 * existing vport to a &struct sk_buff. May be %NULL for a vport that does not
133 struct vport *(*create)(const struct vport_parms *);
134 void (*destroy)(struct vport *);
136 int (*set_options)(struct vport *, struct nlattr *);
137 int (*get_options)(const struct vport *, struct sk_buff *);
146 * a given vport.
156 struct vport *ovs_vport_alloc(int priv_size, const struct vport_ops *,
158 void ovs_vport_free(struct vport *);
163 * vport_priv - access private data area of vport
165 * @vport: vport to access
169 * used for any purpose needed by the vport implementer.
171 static inline void *vport_priv(const struct vport *vport)
173 return (u8 *)(uintptr_t)vport + ALIGN(sizeof(struct vport), VPORT_ALIGN);
177 * vport_from_priv - lookup vport from private data pointer
182 * area to the vport, such as in the case where the private data pointer is
186 static inline struct vport *vport_from_priv(void *priv)
188 return (struct vport *)((u8 *)priv - ALIGN(sizeof(struct vport), VPORT_ALIGN));
191 int ovs_vport_receive(struct vport *, struct sk_buff *,
194 static inline const char *ovs_vport_name(struct vport *vport)
196 return vport->dev->name;
207 void ovs_vport_send(struct vport *vport, struct sk_buff *skb, u8 mac_proto);
209 #endif /* vport.h */