X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fnetlink-socket.h;h=7e01acbfa19c97fc39845ff0e7ca2a2287733d10;hb=28da1f8f725fc2a797174df18a7b3e31ef49ede0;hp=ff2485837f6046da56be75fbdf5330c47105aac2;hpb=50802adb0e00bbf381c31b9e32a7a6a3e920e7ac;p=sliver-openvswitch.git diff --git a/lib/netlink-socket.h b/lib/netlink-socket.h index ff2485837..7e01acbfa 100644 --- a/lib/netlink-socket.h +++ b/lib/netlink-socket.h @@ -35,6 +35,7 @@ #include #include #include +#include "list.h" struct ofpbuf; struct nl_sock; @@ -59,9 +60,23 @@ int nl_sock_transact(struct nl_sock *, const struct ofpbuf *request, int nl_sock_drain(struct nl_sock *); void nl_sock_wait(const struct nl_sock *, short int events); +short int nl_sock_woke(const struct nl_sock *); uint32_t nl_sock_pid(const struct nl_sock *); +/* Batching transactions. */ +struct nl_transaction { + /* Filled in by client. */ + struct ofpbuf *request; /* Request to send. */ + + /* Filled in by nl_sock_transact_batch(). */ + struct ofpbuf *reply; /* Reply (NULL if reply was an error code). */ + int error; /* Positive errno value, 0 if no error. */ +}; + +void nl_sock_transact_multiple(struct nl_sock *, + struct nl_transaction **, size_t n); + /* Table dumping. */ struct nl_dump { struct nl_sock *sock; /* Socket being dumped. */