ip_vs_app
struct ip_vs_app *app; /* its real application */
int (*pkt_out)(struct ip_vs_app *, struct ip_vs_conn *,
int (*pkt_in)(struct ip_vs_app *, struct ip_vs_conn *,
int (*init_conn)(struct ip_vs_app *, struct ip_vs_conn *);
int (*done_conn)(struct ip_vs_app *, struct ip_vs_conn *);
int (*bind_conn)(struct ip_vs_app *, struct ip_vs_conn *,
void (*unbind_conn)(struct ip_vs_app *, struct ip_vs_conn *);
int (*conn_schedule)(struct sk_buff *skb, struct ip_vs_app *app,
(*conn_in_get)(const struct sk_buff *skb, struct ip_vs_app *app,
(*conn_out_get)(const struct sk_buff *skb, struct ip_vs_app *app,
struct ip_vs_app *app);
void (*timeout_change)(struct ip_vs_app *app, int flags);
struct ip_vs_app *register_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app);
void unregister_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app);
int register_ip_vs_app_inc(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 proto,
int ip_vs_app_inc_get(struct ip_vs_app *inc);
void ip_vs_app_inc_put(struct ip_vs_app *inc);
struct ip_vs_app;
int (*register_app)(struct netns_ipvs *ipvs, struct ip_vs_app *inc);
void (*unregister_app)(struct netns_ipvs *ipvs, struct ip_vs_app *inc);
struct ip_vs_app *app; /* bound ip_vs_app object */
ip_vs_app_inc_release(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
int ip_vs_app_inc_get(struct ip_vs_app *inc)
void ip_vs_app_inc_put(struct ip_vs_app *inc)
register_ip_vs_app_inc(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 proto,
struct ip_vs_app *register_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app)
struct ip_vs_app *a;
void unregister_ip_vs_app(struct netns_ipvs *ipvs, struct ip_vs_app *app)
struct ip_vs_app *a, *anxt, *inc, *nxt;
struct ip_vs_app *inc = cp->app;
struct ip_vs_app *app,
struct ip_vs_app *app;
struct ip_vs_app *app,
static inline int ip_vs_app_get(struct ip_vs_app *app)
struct ip_vs_app *app;
static inline void ip_vs_app_put(struct ip_vs_app *app)
static struct ip_vs_app *ip_vs_app_idx(struct netns_ipvs *ipvs, loff_t pos)
struct ip_vs_app *app, *inc;
struct ip_vs_app *inc, *app;
static void ip_vs_app_inc_destroy(struct ip_vs_app *inc)
return list_entry(e, struct ip_vs_app, a_list);
app = list_entry(e, struct ip_vs_app, a_list);
const struct ip_vs_app *inc = v;
struct ip_vs_app *inc = container_of(head, struct ip_vs_app, rcu_head);
ip_vs_app_inc_new(struct netns_ipvs *ipvs, struct ip_vs_app *app, __u16 proto,
struct ip_vs_app *inc;
static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
static int ip_vs_ftp_in(struct ip_vs_app *app, struct ip_vs_conn *cp,
static struct ip_vs_app ip_vs_ftp = {
struct ip_vs_app *app;
ip_vs_ftp_init_conn(struct ip_vs_app *app, struct ip_vs_conn *cp)
ip_vs_ftp_done_conn(struct ip_vs_app *app, struct ip_vs_conn *cp)
static int sctp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
struct ip_vs_app *i;
static void sctp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
struct ip_vs_app *inc;
static int tcp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
struct ip_vs_app *i;
tcp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
struct ip_vs_app *inc;
static int udp_register_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
struct ip_vs_app *i;
udp_unregister_app(struct netns_ipvs *ipvs, struct ip_vs_app *inc)
struct ip_vs_app *inc;