$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
 Layering,Initialization,Registration and Callbacks
 Layers and modules
 Local and remote components
 Local component(s)
 Log output functions
 Macros for address types
 Main Options
 mak, demo
 Maximum Transmission Unit(MTU), Constants from EPI20
 Memory Allocation
 memory allocation wrappers
 Message support
 miscellaneous flags and vlaues
 Moving between components,channels and members
 Multicast Autogeneration
 multicast tests
 Multiple Interfaces
 Network and Transport Features
 Network Strategies
 Numeric protocol codes
void languagesetID_bva(struct dcxt_s *dcxp,
const struct bv_s *bv)
Acacian ensures that initialization of lower layers is automatically called when they are needed by higher ones, so unless specific options need to be passed low level initialization is largely transparent.
Local channel owned by one of our components
get the owner (local component) of a local channel.
Local component flags LCF_OPEN - Component is registered with SDT.
extern struct uuidset_s Lcomponents
A struct uuidset_s with all registered local components (if CF_MULTI_COMPONENT is true).
8-bit equivalent of LENGTH_FLAG
8-bit equivalent of LENGTH_MASK
Set if length > 4095 (can never be set if epi20 used)
mask off flags leaving length
Structures for components
Local component or component set depending on CF_MULTI_COMPONENT.
Lcomponent_s holding ACN data representing the single controller component (see CF_MULTI_COMPONENT).
All log functions are defined as macros which depend on CF_ACNLOG
action must be taken immediately
Available for your application
critical conditions
Log DDL parsing
debug-level messages
Log sACN
system is unusable
error conditions
Log the event/timer loop
mark the exit from a fnction
mark the entry to a function
Log various utilities
Log network interface
normal but significant condition
don’t log (the default)
log to the default facility (same as LOG_USER)
Log the root layer
Special setting for SDT sessions command
warning conditions
Logging options
If using syslog, use the system’s own definitions.
static void lset_end(struct dcxt_s *dcxp)
We’ve accumulated the full language array in dcxp.
static void lset_start(struct dcxt_s *dcxp,
const ddlchar_t **atta)
Process a languageset.
int main(int argc,
char *argv[])
Parse command line options and start controller.
All options are documented below.
Makefile for Demonstration Programs.
both ACN-2006 and ACN-2010
ACN-2010 method
ACN-2006 only
static inline void * mallocx(size_t size)
Allocate memory or exit on failure.
static inline void * mallocxz(size_t size)
Allocate and zero memory or exit on failure.
Mapgen generates the address map and property tables for an ACN device from its DDL description.
static void mapprop(struct dcxt_s *dcxp,
struct ddlprop_s *prop)
Add a dmp property to the property map.
Copy native data types and structures into and out of network packets
static inline uuidtst_t matchuuid(const uint8_t *uuid1,
const uint8_t *uuid2)
implementation maximum
int mcast_initcomp(
   ifMC(struct Lcomponent_s *Lcomp,) const struct mcastscope_s *pscope
Initialize a local component for multicast address allocation according to EPI-10
Multicast Address allocation in accordance with EPI-10.
Header for mcastalloc.c
void measure_bva(struct dcxt_s *dcxp,
const struct bv_s *bv)
Member structures
typedef void memberevent_fn(int event,
void *object,
void *info)
Callback function (registered in sdt_register as membevent) to handle out-of-band session or channel events.
Out of band SDT events as passed to membevent callback [sdt_register].
get the local component from a member
get the remote component from a member
Memory management is currently sub-optimal.
DMP messages divide into two clear sets.
ACN-2006 method
ACN-2010 method
Header used co generate prog-cfg.mak summary of configuration in Makefile format.
extern struct Lchannel_s *mkRecip(
   ifMC(struct Lcomponent_s *Lcomp,) struct chanParams_s *params
Create a reciprocal channel.
Use these macros rather than accessing structures directly because they hide differences due to CF_MULTI_COMPONENT and implementation changes.
All constants except EPI10_HOST_PART_MASK are defined in network byte order.
In both cases addr is in network order.
This can mean multiple physical interfaces (Ethernets) or multiple IP networks running on the same physical interface.
calculate based on holdoff
based on EPI-18 suggested value for holdoff
both ACN-2006 and ACN-2010
both ACN-2006 and ACN-2010
calculate based on holdoff
based on EPI-18 suggested value for holdoff
Send NAKs to the multicast group as well as unicast to the leader
ACN-2010 method
ACN-2006 only
Number of bits required to contain an integer.
IP version (or other transport)
Notes on use of interfaces, ports and multicast addressing (group addressing).
Networking macros and functions for BSD sockets interface
void netx_freeipstr(char **strs)
Free the strings allocated by netx_getmyipstr
Return IP address(es)
int netx_getmyipstr(const char *interfaces[],
uint32_t flagmask,
uint32_t flagmatch,
char **ipstrs,
int maxaddrs)
Get a list of IP addresses in string format.
static int netx_send_to(
   nativesocket_t sk,
   /* contains a flag if port is open and the local port number */ const netx_addr_t *destaddr,
   /* contains dest port and ip numbers */ void *pkt,
   /* pointer data packet if type UPDPacket (return from netx_new_txbuf()) */ ptrdiff_t datalen /* length of data */
Send UDP message to given address.
int netxGetMyAddr(struct rlpsocket_s *cxp,
netx_addr_t *addr)
Return the IP address for a RLP socket.
end of iteration loop
the count of components in remlist.