libosmoctrl  1.4.0.160-7619
Osmocom CTRL library
control_if.h
Go to the documentation of this file.
1 
3 #pragma once
4 
7 
8 int ctrl_parse_get_num(vector vline, int i, long *num);
9 
10 typedef int (*ctrl_cmd_lookup)(void *data, vector vline, int *node_type,
11  void **node_data, int *i);
12 
13 struct ctrl_handle {
15  void *data;
16 
18 
19  /* List of control connections */
21 };
22 
23 
24 int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd);
25 int ctrl_cmd_send_trap(struct ctrl_handle *ctrl, const char *name, char *value);
26 struct ctrl_handle *ctrl_handle_alloc(void *ctx, void *data, ctrl_cmd_lookup lookup);
27 struct ctrl_handle *ctrl_handle_alloc2(void *ctx, void *data,
29  unsigned int node_count);
30 struct ctrl_handle *ctrl_interface_setup(void *data, uint16_t port,
33  const char *bind_addr,
34  uint16_t port,
37  const char *bind_addr,
38  uint16_t port,
40  unsigned int node_count);
41 struct ctrl_connection *osmo_ctrl_conn_alloc(void *ctx, void *data);
42 int ctrl_cmd_handle(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data);
43 struct ctrl_cmd *ctrl_cmd_exec_from_string(struct ctrl_handle *ch, const char *cmdstr);
44 
46 
47 int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, struct msgb *msg);
Represents a single ctrl connection.
Definition: control_cmd.h:45
struct ctrl_connection * osmo_ctrl_conn_alloc(void *ctx, void *data)
Allocate CTRL connection.
Definition: control_if.c:500
struct ctrl_handle * ctrl_interface_setup_dynip2(void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup, unsigned int node_count)
Setup CTRL interface on a given address.
Definition: control_if.c:888
int ctrl_parse_get_num(vector vline, int i, long *num)
Parse ascii-encoded decimal number at vline[i].
Definition: control_if.c:83
struct ctrl_connection * ccon
connection through which the command was received
Definition: control_cmd.h:69
void * data
Definition: control_if.h:15
struct osmo_fd listen_fd
Definition: control_if.h:14
struct ctrl_handle * ctrl_interface_setup(void *data, uint16_t port, ctrl_cmd_lookup lookup)
Definition: control_if.c:779
struct ctrl_handle * ctrl_interface_setup_dynip(void *data, const char *bind_addr, uint16_t port, ctrl_cmd_lookup lookup)
Setup CTRL interface on a given address.
Definition: control_if.c:923
int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd)
Encode a CTRL command and append it to the given write queue.
Definition: control_if.c:124
ctrl_cmd_lookup lookup
Definition: control_if.h:17
uint8_t data[0]
int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, struct msgb *msg)
Handle a received CTRL command contained in a Message buffers.
Definition: control_if.c:384
node_type
int(* ctrl_cmd_lookup)(void *data, vector vline, int *node_type, void **node_data, int *i)
Definition: control_if.h:10
int ctrl_cmd_handle(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd, void *data)
Definition: control_if.c:214
Definition: control_if.h:13
struct llist_head ccon_list
Definition: control_if.h:20
Represents a single ctrl command after parsing.
Definition: control_cmd.h:67
struct ctrl_cmd * ctrl_cmd_exec_from_string(struct ctrl_handle *ch, const char *cmdstr)
Helper for "local execution" of a CTRL command from a string The function will parse + execute the gi...
Definition: control_if.c:963
int ctrl_lookup_register(ctrl_cmd_lookup lookup)
Install a lookup helper function for control nodes This function is used by e.g.
Definition: control_if.c:938
struct ctrl_handle * ctrl_handle_alloc(void *ctx, void *data, ctrl_cmd_lookup lookup)
Allocate a CTRL interface handle.
Definition: control_if.c:864
struct ctrl_handle * ctrl_handle_alloc2(void *ctx, void *data, ctrl_cmd_lookup lookup, unsigned int node_count)
Allocate a CTRL interface handle.
Definition: control_if.c:837
int ctrl_cmd_send_trap(struct ctrl_handle *ctrl, const char *name, char *value)
Send TRAP over given Control Interface.
Definition: control_if.c:152