X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubus.git;a=blobdiff_plain;f=ubusmsg.h;h=398b126b6dc01833937749a110181ea0debb1476;hp=607ecd4ac71ef21f0a0c972a748ee0714061c0ae;hb=6f4e11e1db399074273944329883f9c35e7daef6;hpb=c6f705451527e6e5e8f5a2715f11478eeb8799e4 diff --git a/ubusmsg.h b/ubusmsg.h index 607ecd4..398b126 100644 --- a/ubusmsg.h +++ b/ubusmsg.h @@ -19,9 +19,11 @@ #define __packetdata __attribute__((packed)) __attribute__((__aligned__(4))) -#define UBUS_MAX_MSGLEN 65536 +#define UBUS_MSG_CHUNK_SIZE 65536 #define UBUS_SYSTEM_OBJECT_EVENT 1 +#define UBUS_SYSTEM_OBJECT_ACL 2 +#define UBUS_SYSTEM_OBJECT_MONITOR 3 #define UBUS_SYSTEM_OBJECT_MAX 1024 struct ubus_msghdr { @@ -29,7 +31,6 @@ struct ubus_msghdr { uint8_t type; uint16_t seq; uint32_t peer; - struct blob_attr data[]; } __packetdata; enum ubus_msg_type { @@ -54,9 +55,22 @@ enum ubus_msg_type { UBUS_MSG_ADD_OBJECT, UBUS_MSG_REMOVE_OBJECT, - /* watch an object, notify on remove */ - UBUS_MSG_ADD_WATCH, - UBUS_MSG_REMOVE_WATCH, + /* + * subscribe/unsubscribe to object notifications + * The unsubscribe message is sent from ubusd when + * the object disappears + */ + UBUS_MSG_SUBSCRIBE, + UBUS_MSG_UNSUBSCRIBE, + + /* + * send a notification to all subscribers of an object. + * when sent from the server, it indicates a subscription + * status change + */ + UBUS_MSG_NOTIFY, + + UBUS_MSG_MONITOR, /* must be last */ __UBUS_MSG_LAST, @@ -77,10 +91,30 @@ enum ubus_msg_attr { UBUS_ATTR_DATA, UBUS_ATTR_TARGET, + UBUS_ATTR_ACTIVE, + UBUS_ATTR_NO_REPLY, + + UBUS_ATTR_SUBSCRIBERS, + + UBUS_ATTR_USER, + UBUS_ATTR_GROUP, + /* must be last */ UBUS_ATTR_MAX, }; +enum ubus_monitor_attr { + UBUS_MONITOR_CLIENT, + UBUS_MONITOR_PEER, + UBUS_MONITOR_SEND, + UBUS_MONITOR_SEQ, + UBUS_MONITOR_TYPE, + UBUS_MONITOR_DATA, + + /* must be last */ + UBUS_MONITOR_MAX, +}; + enum ubus_msg_status { UBUS_STATUS_OK, UBUS_STATUS_INVALID_COMMAND, @@ -92,6 +126,7 @@ enum ubus_msg_status { UBUS_STATUS_TIMEOUT, UBUS_STATUS_NOT_SUPPORTED, UBUS_STATUS_UNKNOWN_ERROR, + UBUS_STATUS_CONNECTION_FAILED, __UBUS_STATUS_LAST };