diff options
-rw-r--r-- | openbsc/include/openbsc/ipaccess.h | 5 | ||||
-rw-r--r-- | openbsc/src/libabis/input/ipaccess.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/ipaccess.h b/openbsc/include/openbsc/ipaccess.h index 135fce2e2..00642ff03 100644 --- a/openbsc/include/openbsc/ipaccess.h +++ b/openbsc/include/openbsc/ipaccess.h @@ -31,6 +31,10 @@ enum ipaccess_proto { IPAC_PROTO_MGCP_OLD = 0xfc, }; +enum ipaccess_proto_ext { + IPAC_PROTO_EXT_CTRL = 0x00, +}; + enum ipaccess_msgtype { IPAC_MSGT_PING = 0x00, IPAC_MSGT_PONG = 0x01, @@ -70,6 +74,7 @@ int ipaccess_connect(struct e1inp_line *line, struct sockaddr_in *sa); int ipaccess_rcvmsg_base(struct msgb *msg, struct bsc_fd *bfd); struct msgb *ipaccess_read_msg(struct bsc_fd *bfd, int *error); void ipaccess_prepend_header(struct msgb *msg, int proto); +void ipaccess_prepend_header_ext(struct msgb *msg, int proto); int ipaccess_send_pong(int fd); int ipaccess_send_id_ack(int fd); int ipaccess_send_id_req(int fd); diff --git a/openbsc/src/libabis/input/ipaccess.c b/openbsc/src/libabis/input/ipaccess.c index ecf70388d..e1e314b9b 100644 --- a/openbsc/src/libabis/input/ipaccess.c +++ b/openbsc/src/libabis/input/ipaccess.c @@ -551,6 +551,15 @@ static int handle_ts1_read(struct bsc_fd *bfd) return ret; } +void ipaccess_prepend_header_ext(struct msgb *msg, int proto) +{ + struct ipaccess_head_ext *hh_ext; + + /* prepend the osmo ip.access header extension */ + hh_ext = (struct ipaccess_head_ext *) msgb_push(msg, sizeof(*hh_ext)); + hh_ext->proto = proto; +} + void ipaccess_prepend_header(struct msgb *msg, int proto) { struct ipaccess_head *hh; |