openthread-br
0.3.0-72c0388
|
Go to the documentation of this file.
34 #ifndef OTBR_AGENT_OTUBUS_HPP_
35 #define OTBR_AGENT_OTUBUS_HPP_
42 #include <openthread/ip6.h>
43 #include <openthread/link.h>
44 #include <openthread/netdiag.h>
45 #include <openthread/udp.h>
52 #include <libubox/blobmsg_json.h>
53 #include <libubox/uloop.h>
54 #include <libubox/ustream.h>
55 #include <libubox/utils.h>
61 class ControllerOpenThread;
112 struct ubus_object * aObj,
113 struct ubus_request_data *aRequest,
114 const char * aMethod,
115 struct blob_attr * aMsg);
130 struct ubus_object * aObj,
131 struct ubus_request_data *aRequest,
132 const char * aMethod,
133 struct blob_attr * aMsg);
148 struct ubus_object * aObj,
149 struct ubus_request_data *aRequest,
150 const char * aMethod,
151 struct blob_attr * aMsg);
166 struct ubus_object * aObj,
167 struct ubus_request_data *aRequest,
168 const char * aMethod,
169 struct blob_attr * aMsg);
184 struct ubus_object * aObj,
185 struct ubus_request_data *aRequest,
186 const char * aMethod,
187 struct blob_attr * aMsg);
202 struct ubus_object * aObj,
203 struct ubus_request_data *aRequest,
204 const char * aMethod,
205 struct blob_attr * aMsg);
220 struct ubus_object * aObj,
221 struct ubus_request_data *aRequest,
222 const char * aMethod,
223 struct blob_attr * aMsg);
238 struct ubus_object * aObj,
239 struct ubus_request_data *aRequest,
240 const char * aMethod,
241 struct blob_attr * aMsg);
256 struct ubus_object * aObj,
257 struct ubus_request_data *aRequest,
258 const char * aMethod,
259 struct blob_attr * aMsg);
274 struct ubus_object * aObj,
275 struct ubus_request_data *aRequest,
276 const char * aMethod,
277 struct blob_attr * aMsg);
292 struct ubus_object * aObj,
293 struct ubus_request_data *aRequest,
294 const char * aMethod,
295 struct blob_attr * aMsg);
310 struct ubus_object * aObj,
311 struct ubus_request_data *aRequest,
312 const char * aMethod,
313 struct blob_attr * aMsg);
328 struct ubus_object * aObj,
329 struct ubus_request_data *aRequest,
330 const char * aMethod,
331 struct blob_attr * aMsg);
346 struct ubus_object * aObj,
347 struct ubus_request_data *aRequest,
348 const char * aMethod,
349 struct blob_attr * aMsg);
364 struct ubus_object * aObj,
365 struct ubus_request_data *aRequest,
366 const char * aMethod,
367 struct blob_attr * aMsg);
382 struct ubus_object * aObj,
383 struct ubus_request_data *aRequest,
384 const char * aMethod,
385 struct blob_attr * aMsg);
400 struct ubus_object * aObj,
401 struct ubus_request_data *aRequest,
402 const char * aMethod,
403 struct blob_attr * aMsg);
418 struct ubus_object * aObj,
419 struct ubus_request_data *aRequest,
420 const char * aMethod,
421 struct blob_attr * aMsg);
436 struct ubus_object * aObj,
437 struct ubus_request_data *aRequest,
438 const char * aMethod,
439 struct blob_attr * aMsg);
454 struct ubus_object * aObj,
455 struct ubus_request_data *aRequest,
456 const char * aMethod,
457 struct blob_attr * aMsg);
472 struct ubus_object * aObj,
473 struct ubus_request_data *aRequest,
474 const char * aMethod,
475 struct blob_attr * aMsg);
490 struct ubus_object * aObj,
491 struct ubus_request_data *aRequest,
492 const char * aMethod,
493 struct blob_attr * aMsg);
508 struct ubus_object * aObj,
509 struct ubus_request_data *aRequest,
510 const char * aMethod,
511 struct blob_attr * aMsg);
526 struct ubus_object * aObj,
527 struct ubus_request_data *aRequest,
528 const char * aMethod,
529 struct blob_attr * aMsg);
544 struct ubus_object * aObj,
545 struct ubus_request_data *aRequest,
546 const char * aMethod,
547 struct blob_attr * aMsg);
562 struct ubus_object * aObj,
563 struct ubus_request_data *aRequest,
564 const char * aMethod,
565 struct blob_attr * aMsg);
580 struct ubus_object * aObj,
581 struct ubus_request_data *aRequest,
582 const char * aMethod,
583 struct blob_attr * aMsg);
598 struct ubus_object * aObj,
599 struct ubus_request_data *aRequest,
600 const char * aMethod,
601 struct blob_attr * aMsg);
616 struct ubus_object * aObj,
617 struct ubus_request_data *aRequest,
618 const char * aMethod,
619 struct blob_attr * aMsg);
634 struct ubus_object * aObj,
635 struct ubus_request_data *aRequest,
636 const char * aMethod,
637 struct blob_attr * aMsg);
652 struct ubus_object * aObj,
653 struct ubus_request_data *aRequest,
654 const char * aMethod,
655 struct blob_attr * aMsg);
670 struct ubus_object * aObj,
671 struct ubus_request_data *aRequest,
672 const char * aMethod,
673 struct blob_attr * aMsg);
688 struct ubus_object * aObj,
689 struct ubus_request_data *aRequest,
690 const char * aMethod,
691 struct blob_attr * aMsg);
706 struct ubus_object * aObj,
707 struct ubus_request_data *aRequest,
708 const char * aMethod,
709 struct blob_attr * aMsg);
724 struct ubus_object * aObj,
725 struct ubus_request_data *aRequest,
726 const char * aMethod,
727 struct blob_attr * aMsg);
742 struct ubus_object * aObj,
743 struct ubus_request_data *aRequest,
744 const char * aMethod,
745 struct blob_attr * aMsg);
757 otMessage * aMessage,
758 const otMessageInfo *aMessageInfo,
773 struct ubus_context * mContext;
774 const char * mSockPath;
775 struct blob_buf mBuf;
776 struct blob_buf mNetworkdataBuf;
778 std::mutex * mNcpThreadMutex;
782 kDefaultJoinerTimeout = 120,
797 void ProcessScan(
void);
811 int UbusScanHandlerDetail(
struct ubus_context * aContext,
812 struct ubus_object * aObj,
813 struct ubus_request_data *aRequest,
814 const char * aMethod,
815 struct blob_attr * aMsg);
824 static void HandleActiveScanResult(otActiveScanResult *aResult,
void *aContext);
832 void HandleActiveScanResultDetail(otActiveScanResult *aResult);
846 int UbusNeighborHandlerDetail(
struct ubus_context * aContext,
847 struct ubus_object * aObj,
848 struct ubus_request_data *aRequest,
849 const char * aMethod,
850 struct blob_attr * aMsg);
864 int UbusParentHandlerDetail(
struct ubus_context * aContext,
865 struct ubus_object * aObj,
866 struct ubus_request_data *aRequest,
867 const char * aMethod,
868 struct blob_attr * aMsg);
882 int UbusMgmtset(
struct ubus_context * aContext,
883 struct ubus_object * aObj,
884 struct ubus_request_data *aRequest,
885 const char * aMethod,
886 struct blob_attr * aMsg);
900 int UbusLeaveHandlerDetail(
struct ubus_context * aContext,
901 struct ubus_object * aObj,
902 struct ubus_request_data *aRequest,
903 const char * aMethod,
904 struct blob_attr * aMsg);
919 int UbusThreadHandler(
struct ubus_context * aContext,
920 struct ubus_object * aObj,
921 struct ubus_request_data *aRequest,
922 const char * aMethod,
923 struct blob_attr * aMsg,
924 const char * aAction);
939 int UbusGetInformation(
struct ubus_context * aContext,
940 struct ubus_object * aObj,
941 struct ubus_request_data *aRequest,
942 const char * aMethod,
943 struct blob_attr * aMsg,
944 const char * action);
959 int UbusSetInformation(
struct ubus_context * aContext,
960 struct ubus_object * aObj,
961 struct ubus_request_data *aRequest,
962 const char * aMethod,
963 struct blob_attr * aMsg,
964 const char * aAction);
979 int UbusCommissioner(
struct ubus_context * aContext,
980 struct ubus_object * aObj,
981 struct ubus_request_data *aRequest,
982 const char * aMethod,
983 struct blob_attr * aMsg,
984 const char * aAction);
993 static void HandleStateChanged(otCommissionerState aState,
void *aContext);
1001 void HandleStateChanged(otCommissionerState aState);
1012 static void HandleJoinerEvent(otCommissionerJoinerEvent aEvent,
1013 const otJoinerInfo * aJoinerInfo,
1014 const otExtAddress * aJoinerId,
1025 void HandleJoinerEvent(otCommissionerJoinerEvent aEvent,
1026 const otJoinerInfo * aJoinerInfo,
1027 const otExtAddress * aJoinerId);
1036 void GetState(otInstance *aInstance,
char *aState);
1042 void UbusAddFd(
void);
1050 static void UbusReconnTimer(
struct uloop_timeout *aTimeout);
1058 void UbusReconnTimerDetail(
struct uloop_timeout *aTimeout);
1066 static void UbusConnectionLost(
struct ubus_context *aContext);
1076 int DisplayUbusInit(
const char *aPath);
1082 void DisplayUbusDone(
void);
1094 otError ParseLong(
char *aString,
long &aLong);
1105 int Hex2Bin(
const char *aHex, uint8_t *aBin, uint16_t aBinLength);
1115 void OutputBytes(
const uint8_t *aBytes, uint8_t aLength,
char *aOutput);
1125 void AppendResult(otError aError,
struct ubus_context *aContext,
struct ubus_request_data *aRequest);
1156 std::mutex mThreadMutex;
1161 #endif // OTBR_AGENT_OTUBUS_HPP_
static int UbusExtPanIdHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:424
static int UbusStateHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:388
static void Initialize(Ncp::ControllerOpenThread *aController, std::mutex *aMutex)
Definition: otubus.cpp:81
static void HandleDiagnosticGetResponse(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext)
Definition: otubus.cpp:1295
static int UbusThreadStopHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:487
void Process(const MainloopContext &aMainloop) override
Definition: otubus.cpp:1824
static int UbusMacfilterSetStateHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:640
static int UbusMacfilterAddrHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:604
static int UbusJoinerRemoveHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:577
static int UbusMacfilterAddHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:622
static int UbusPskcHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:442
static int UbusMacfilterRemoveHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:631
static int UbusSetPskcHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:451
Definition: otubus.hpp:1128
void InstallUbusObject(void)
Definition: otubus.cpp:1717
static int UbusSetPanIdHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:415
static int UbusMacfilterStateHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:613
static int UbusCommissionerStartHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:568
static int UbusSetModeHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:523
UBusAgent(otbr::Ncp::ControllerOpenThread &aNcp)
Definition: otubus.hpp:1137
static int UbusParentHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:496
static int UbusPanIdHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:406
static UbusServer & GetInstance(void)
Definition: otubus.cpp:76
Definition: mainloop.hpp:54
static int UbusSetNetworkkeyHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:469
static int UbusScanHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:296
static int UbusNetworknameHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:370
static int UbusLeaderdataHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:550
static int UbusNetworkkeyHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:460
static int UbusMacfilterClearHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:649
void Init(void)
Definition: otubus.cpp:1793
static int UbusChannelHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:343
Definition: otubus.hpp:74
static int UbusNetworkdataHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:559
static int UbusMgmtsetHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:586
static int UbusJoinerAddHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:595
static int UbusSetNetworknameHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:379
static int UbusPartitionIdHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:532
static int UbusSetExtPanIdHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:433
static int UbusSetChannelHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:352
static int UbusLeaveHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:541
static int UbusRloc16Handler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:397
static int UbusThreadStartHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:478
otSysMainloopContext MainloopContext
Definition: mainloop.hpp:47
void Update(MainloopContext &aMainloop) override
Definition: otubus.cpp:1808
Definition: ncp_openthread.hpp:64
static int UbusJoinerNumHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:361
static int UbusModeHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:514
static int UbusNeighborHandler(struct ubus_context *aContext, struct ubus_object *aObj, struct ubus_request_data *aRequest, const char *aMethod, struct blob_attr *aMsg)
Definition: otubus.cpp:505