Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Daniel Pocock <daniel@pocock.com.au>
To: Dave Taht <dave.taht@bufferbloat.net>
Cc: cerowrt-devel@lists.bufferbloat.net
Subject: Re: [Cerowrt-devel] Bringing asio to *WRT
Date: Sun, 08 Sep 2013 23:57:44 +0200	[thread overview]
Message-ID: <522CF2D8.2050609@pocock.com.au> (raw)
In-Reply-To: <20130908212355.GB14461@lists.bufferbloat.net>

[-- Attachment #1: Type: text/plain, Size: 2184 bytes --]



On 08/09/13 23:23, Dave Taht wrote:
> On Sun, Sep 08, 2013 at 09:18:54PM +0200, Daniel Pocock wrote:
>>
>>
>>
>> Hi,
>>
>> I posted this contribution to OpenWRT but it has been ignored for almost
>> 12 months:
>>
>> https://lists.openwrt.org/pipermail/openwrt-devel/2012-September/016771.html
>>
>> I've tried asio on OpenWRT and it seems to work fine, I've submitted a
>> patch for it.  Would it be possible to bring this directly into CeroWRT?
> 
> We maintain a packages repo (ceropackages-3.3) for various bits of interesting 
> stuff. 
> 
> Certainly a decent stun/turn server in the webrtc world would be "interesting"

The underlying asio library itself is general purpose - so it is not
just for STUN/TURN.  TURN is very compelling now that WebRTC is taking
off and uses TURN by default from the browser.

To give another example, asio has been used as a foundation for the
websocketpp suite, which enables both client and server websocket
development

> It's not clear to me what else asio is - and if it is "decent enough"?

> In general I am allergic to c++/boost stuff in tiny embedded systems - we have
> only so much flash and ram to spare. What are the flash and memory impacts?

asio itself is a header library for asynchronous, event-based programming

It comes in a boost version and a non-boost version.  This is the
non-boost version, so it is likely to have less impact than the boost
version.  I confess the full solution with SIP + TURN + SSL is a little
top heavy though, a device with 32MB RAM may not be enough, my WL-1043ND
couldn't handle it all.  On the other hand, one of these jumbo routers
(I went and got a Buffalo WZR-HP-AG300H with 128MB RAM) is quite
suitable and can run a full WebRTC stack as a convenient alternative to
Skype.

Here is a trivial asio example:

http://think-async.com/Asio/asio-1.4.8/src/examples/echo/async_tcp_echo_server.cpp

> Anyway, if you want to package it up I'll gladly fold it into ceropackages,
> and build it, where more can fiddle with it. 

I've made up a patch against OpenWRT, to bring this into ceropackages do
I need to adapt the patch or you can easily use it as is?  Please find
the Makefile attached.





[-- Attachment #2: Makefile.asio --]
[-- Type: text/plain, Size: 1332 bytes --]

#
# Copyright (C) 2012 OpenWrt.org
# Copyright (C) 2012 Daniel Pocock <daniel@pocock.com.au>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=asio
PKG_VERSION:=1.4.8
PKG_RELEASE:=1

PKG_BUILD_DIR:=$(BUILD_DIR)/asio-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/asio
PKG_MD5SUM:=0e2ebaa1e5569e415908c8d0ede95044

#PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1

include $(INCLUDE_DIR)/package.mk

#TARGET_CFLAGS += $(FPIC)

define Package/libasio
  SECTION:=libs
  CATEGORY:=Libraries
  DEFAULT:=m
  TITLE:=libasio
  URL:=http://think-async.com/
  DEPENDS:=+boost
endef

define Package/libasio/description
 Async IO library
endef

define Build/Configure
        $(call Build/Configure/Default, --enable-maintainer-mode )
endef

define Build/Compile
	$(MAKE) -C $(PKG_BUILD_DIR)/include
endef

define Package/libasio/install
	$(MAKE) DESTDIR=$(PKG_INSTALL_DIR) -C $(PKG_BUILD_DIR)/include install
endef

define Build/InstallDev
	$(MAKE) DESTDIR=$(1) -C $(PKG_BUILD_DIR)/include install
#	$(INSTALL_DIR) $(1)/usr/include/asio
#	$(CP) $(PKG_INSTALL_DIR)/usr/include/asio.hpp $(1)/usr/include/
#	$(CP) $(PKG_BUILD_DIR)/usr/include/asio/* $(1)/usr/include/asio/
endef

$(eval $(call BuildPackage,libasio))


  reply	other threads:[~2013-09-08 21:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-08 19:18 Daniel Pocock
2013-09-08 21:23 ` Dave Taht
2013-09-08 21:57   ` Daniel Pocock [this message]
2013-09-08 22:57     ` Dave Taht
2013-09-09 13:09       ` Daniel Pocock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=522CF2D8.2050609@pocock.com.au \
    --to=daniel@pocock.com.au \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --cc=dave.taht@bufferbloat.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox