mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 14:25:26 +00:00
netlink-socket: Simplify use of transactions and dumps.
This disentangles "struct nl_dump" from "struct nl_sock", clearing the way to make the use of either one thread-safe in an obviously correct manner. Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
|
||||
* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -84,6 +84,11 @@ struct nl_transaction {
|
||||
void nl_sock_transact_multiple(struct nl_sock *,
|
||||
struct nl_transaction **, size_t n);
|
||||
|
||||
/* Transactions without an allocated socket. */
|
||||
int nl_transact(int protocol, const struct ofpbuf *request,
|
||||
struct ofpbuf **replyp);
|
||||
void nl_transact_multiple(int protocol, struct nl_transaction **, size_t n);
|
||||
|
||||
/* Table dumping. */
|
||||
struct nl_dump {
|
||||
struct nl_sock *sock; /* Socket being dumped. */
|
||||
@@ -92,7 +97,7 @@ struct nl_dump {
|
||||
int status; /* 0=OK, EOF=done, or positive errno value. */
|
||||
};
|
||||
|
||||
void nl_dump_start(struct nl_dump *, struct nl_sock *,
|
||||
void nl_dump_start(struct nl_dump *, int protocol,
|
||||
const struct ofpbuf *request);
|
||||
bool nl_dump_next(struct nl_dump *, struct ofpbuf *reply);
|
||||
int nl_dump_done(struct nl_dump *);
|
||||
|
Reference in New Issue
Block a user