This paper focuses on designing network processing software for embedded processors. Our design flow CRACC represents an efficient path to implementation based on a modular application description, while avoiding much of the overhead of existing component-based techniques. We illustrate results for a real-world application implementing a full IP-based DSL Access Multiplexer (IP-DSLAM) system. We quantify overhead and optimization potential incurred by our modular implementation. We also point out how CRACC can be deployed for HW-SW partitioning and design space exploration. Categories and Subject Descriptors D.2.6 [Software Engineering]: Programming Environments. D.3.4 [Programming Languages]: Processors - code generation. General Terms Design, Languages, Performance. Keywords Software Development, Programmable Platforms, Design Space Exploration, DSLAM, Network Processing.