From patchwork Wed Jan 13 21:15:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Fischofer X-Patchwork-Id: 59680 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp3611882lbb; Wed, 13 Jan 2016 13:18:39 -0800 (PST) X-Received: by 10.140.146.198 with SMTP id 189mr568455qhs.76.1452719919313; Wed, 13 Jan 2016 13:18:39 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id c65si3323084qgc.16.2016.01.13.13.18.38; Wed, 13 Jan 2016 13:18:39 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dkim=neutral (body hash did not verify) header.i=@linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id C0EEF617C4; Wed, 13 Jan 2016 21:18:38 +0000 (UTC) Authentication-Results: lists.linaro.org; dkim=fail reason="verification failed; unprotected key" header.d=linaro.org header.i=@linaro.org header.b=Q6rssf6d; dkim-adsp=none (unprotected policy); dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id D29FA617B1; Wed, 13 Jan 2016 21:18:28 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id D0367617B5; Wed, 13 Jan 2016 21:18:01 +0000 (UTC) Received: from mail-ob0-f180.google.com (mail-ob0-f180.google.com [209.85.214.180]) by lists.linaro.org (Postfix) with ESMTPS id 74D85617B1 for ; Wed, 13 Jan 2016 21:15:35 +0000 (UTC) Received: by mail-ob0-f180.google.com with SMTP id py5so98534737obc.2 for ; Wed, 13 Jan 2016 13:15:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=xKSZ8P3ERTSbJB515MuWaOX3eckIhMmJI8tUHvaXHGo=; b=Q6rssf6dTg2WRrPhg5LAx8WYll+npQdiMJ6F0C4kRanTpk1dIYWdVs6dOO7Xo75Ci/ 3ymm7Sr23+ctuEYzd/e71YKR7upzvFCBcLJG4UzRe5Tu8uSPCf2W15LPV5Gj4hW2Jv9N DLsXRArMhsQ2Ld4Q2hdqgnYiSnzAtFmyTeKb4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=xKSZ8P3ERTSbJB515MuWaOX3eckIhMmJI8tUHvaXHGo=; b=JfTfmT7mTsb++qcDfgvLTcjG4yY5HBW42STuhJOwWG4yLJiaA0x4w6Th7jL9AQ9D5b paIheadtQhRJtRqM/S+w/DYK1Ck8B3K9pTq9CKs/BcR5DJqRXok/i62CnfGBfJTUHJMi CymoSutXHxVF0rKQ4tHbfR8xur3Vp+sZyv4bNzPftqzxRTTkBlAuGlxB3Tg5JYEqwQGN IK8tbGCUPt1ky3IZwL5KpM3Is+Uq2LOcEvimem7oNSa/Jlusoy9n1SOR3NSGmuwzodDJ vy1LAIuQCXqzTKCTkjymPP0kJe37sy+FzSL6XB/wtzdVY0lSaFepb4UXLP6uW0Lla9dX x+Kg== X-Gm-Message-State: ALoCoQmJ8E7lpd85sql1qtBjJ9AlYCV+EC64vfhYS701BA+Lc4bZxDNW/VI/NITfTn9AKPzk/7lC2izwmKCqxiWyVKOxlCIICQ== X-Received: by 10.60.232.66 with SMTP id tm2mr323001oec.76.1452719734927; Wed, 13 Jan 2016 13:15:34 -0800 (PST) Received: from Ubuntu15.localdomain (cpe-66-68-129-43.austin.res.rr.com. [66.68.129.43]) by smtp.gmail.com with ESMTPSA id q4sm1594290oew.6.2016.01.13.13.15.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 13 Jan 2016 13:15:34 -0800 (PST) From: Bill Fischofer To: lng-odp@lists.linaro.org Date: Wed, 13 Jan 2016 15:15:30 -0600 Message-Id: <1452719730-1746-1-git-send-email-bill.fischofer@linaro.org> X-Mailer: git-send-email 2.5.0 X-Topics: patch Subject: [lng-odp] [API-NEXT PATCHv2] doc: remove imagemagic dependency and use svg diagrams in all asciidocs X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" Simplify ODP documentation builds by using .svg files directly for all images. This eliminates the need to create .png and .eps files via the imagemagic package. Note that this removes easy PDF output for ODP user documents, however there is no real demand for such capability. Signed-off-by: Bill Fischofer --- aminclude.am | 1 - configure.ac | 11 --------- doc/Makefile.am | 4 +--- doc/images/.gitignore | 2 -- doc/images/Makefile.am | 43 ------------------------------------ doc/odp.dox | 2 +- doc/process-guide/release-guide.adoc | 4 ++-- doc/users-guide/users-guide.adoc | 18 +++++++-------- 8 files changed, 13 insertions(+), 72 deletions(-) delete mode 100644 doc/images/.gitignore delete mode 100644 doc/images/Makefile.am diff --git a/aminclude.am b/aminclude.am index 1b0ec01..8e03174 100644 --- a/aminclude.am +++ b/aminclude.am @@ -148,7 +148,6 @@ doxygen-doc: doxygen-html $(DX_PS_GOAL) $(DX_PDF_GOAL) @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) rm -rf @DX_DOCDIR@ - make --directory=$(srcdir)/doc/images $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) DX_CLEANFILES = \ diff --git a/configure.ac b/configure.ac index 4f89f03..2f4b8ba 100644 --- a/configure.ac +++ b/configure.ac @@ -262,16 +262,6 @@ AC_ARG_ENABLE([user-guides], AM_CONDITIONAL([user_guide], [test "x${user_guides}" = "xyes" ]) ########################################################################## -# Check for imagemagic availability -########################################################################## - AC_CHECK_PROGS([IMAGEMAGIC], [convert]) - if test -z "$IMAGEMAGIC"; - then AC_MSG_WARN([Imagemagic (convert) not found - continuing without image support]) - fi - -AM_CONDITIONAL([HAVE_IMAGEMAGIC], [test "x${IMAGEMAGIC}" = "xconvert"]) - -########################################################################## # Check for mscgen availability ########################################################################## AC_CHECK_PROGS([MSCGEN], [mscgen]) @@ -332,7 +322,6 @@ AC_CONFIG_FILES([Makefile doc/implementers-guide/Makefile doc/users-guide/Makefile doc/process-guide/Makefile - doc/images/Makefile example/Makefile example/classifier/Makefile example/generator/Makefile diff --git a/doc/Makefile.am b/doc/Makefile.am index a1e9903..3661e8d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,12 +1,10 @@ -SUBDIRS = images - if HAVE_DOXYGEN clean-local: rm -rf output endif if user_guide -SUBDIRS += implementers-guide users-guide process-guide +SUBDIRS = implementers-guide users-guide process-guide endif EXTRA_DIST = \ diff --git a/doc/images/.gitignore b/doc/images/.gitignore deleted file mode 100644 index 148f2f2..0000000 --- a/doc/images/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.png -*.eps diff --git a/doc/images/Makefile.am b/doc/images/Makefile.am deleted file mode 100644 index 8ab03b4..0000000 --- a/doc/images/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ -.svg.png: - convert $^ $@ - -.svg.eps: - convert $^ $@ - -.msc.png: - mscgen -T png -i $^ -o $@ - -SVG_SRCS = \ - atomic_queue.svg \ - ordered_queue.svg \ - parallel_queue.svg \ - odp_components.svg \ - odp_rx_processing.svg \ - odp_scheduling.svg \ - odp_traffic_manager.svg \ - overview.svg \ - release_git.svg \ - simple_release_git.svg - -SVG_TARGETS = $(SVG_SRCS:svg=png) -SVG_TARGETS += $(SVG_SRCS:svg=eps) - -MSG_SRCS = resource_management.msc -MSG_TARGETS = $(MSG_SRCS:msc=png) - -EXTRA_DIST = $(SVG_SRCS) $(MSG_SRCS) - -TARGETS=$(SVG_TARGETS) $(MSG_TARGETS) - -if HAVE_IMAGEMAGIC -TARGETS += $(SVG_TARGETS) -endif - -if HAVE_MSCGEN -TARGETS += $(MSG_TARGETS) -endif - -all-local: $(TARGETS) - -clean-local: - rm -f $(SVG_TARGETS) $(MSG_TARGETS) diff --git a/doc/odp.dox b/doc/odp.dox index 0bff5ad..5792179 100644 --- a/doc/odp.dox +++ b/doc/odp.dox @@ -17,7 +17,7 @@ * also be useful for those wishing to implement ODP on other * platforms. * - * @image html overview.png + * @image html overview.svg * * ODP consists of a common layer and an implementation layer. * Applications written to the common layer are portable across all diff --git a/doc/process-guide/release-guide.adoc b/doc/process-guide/release-guide.adoc index 5bef890..302e058 100644 --- a/doc/process-guide/release-guide.adoc +++ b/doc/process-guide/release-guide.adoc @@ -31,7 +31,7 @@ where a major release is to be made and applied atomically, this flow can be seen in Figure 1. .Overview of the ODP git process -image::../images/simple_release_git.png[align="center"] +image::../images/simple_release_git.svg[align="center"] Regular bug fixes, and implementation changes occur directly to master. @@ -46,7 +46,7 @@ cherry picked work so that it may be applied to master on release day, this can be seen in detail in Figure 2. .Overview of the ODP git process -image::../images/release_git.png[align="center"] +image::../images/release_git.svg[align="center"] === api-next === acceptance criteria for patches to api-next (path 1): diff --git a/doc/users-guide/users-guide.adoc b/doc/users-guide/users-guide.adoc index 6f7dd86..45fe4a8 100644 --- a/doc/users-guide/users-guide.adoc +++ b/doc/users-guide/users-guide.adoc @@ -12,7 +12,7 @@ Further details about ODP may be found at the http://opendataplane.org[ODP] home page. .Overview of a system running ODP applications -image::../images/overview.png[align="center"] +image::../images/overview.svg[align="center"] ODP is an API specification that allows many implementations to provide platform independence, automatic hardware acceleration and CPU scaling to @@ -22,7 +22,7 @@ write an application that can successfully take advantage of the API. :numbered: == Introduction .OpenDataPlane Components -image::../images/odp_components.png[align="center"] +image::../images/odp_components.svg[align="center"] .The ODP API Specification ODP consists of three separate but related component parts. First, ODP is an @@ -360,7 +360,7 @@ The *Classifier* provides a suite of APIs that control packet receive (RX) processing. .ODP Receive Processing with Classifier -image::../images/odp_rx_processing.png[align="center"] +image::../images/odp_rx_processing.svg[align="center"] The classifier provides two logically related services: [horizontal] @@ -397,7 +397,7 @@ The *Scheduler* provides a suite of APIs that control scalable event processing. .ODP Scheduler and Event Processing -image::../images/odp_scheduling.png[align="center"] +image::../images/odp_scheduling.svg[align="center"] The Scheduler is responsible for selecting and dispatching one or more events to a requesting thread. Event selection is based on several factors involving @@ -429,7 +429,7 @@ The *Traffic Manager* provides a suite of APIs that control traffic shaping and Quality of Service (QoS) processing for packet output. .ODP Transmit processing with Traffic Manager -image::../images/odp_traffic_manager.png[align="center"] +image::../images/odp_traffic_manager.svg[align="center"] The final stage of packet processing is to transmit it. Here, applications have several choices. As with RX processing, applications may send packets @@ -508,7 +508,7 @@ Shutdown is the logical reverse of the initialization procedure, with called to terminate ODP. .ODP Application Structure Flow Diagram -image::../images/resource_management.png[align="center"] +image::../images/resource_management.svg[align="center"] == Common Conventions Many ODP APIs share common conventions regarding their arguments and return @@ -636,7 +636,7 @@ SCHED queues that specify a sync mode of ODP_SCHED_SYNC_NONE are unrestricted in how events are processed. .Parallel Queue Scheduling -image::../images/parallel_queue.png[align="center"] +image::../images/parallel_queue.svg[align="center"] All events held on parallel queues are eligible to be scheduled simultaneously and any required synchronization between them is the responsibility of the @@ -658,7 +658,7 @@ more events from the same atomic queue if *odp_schedule_multi()* is used. In this case these multiple events all share the same atomic scheduling context. .Atomic Queue Scheduling -image::../images/atomic_queue.png[align="center"] +image::../images/atomic_queue.svg[align="center"] In this example, no matter how many events may be held in an atomic queue, only one calling thread can receive scheduled events from it at a time. Here @@ -678,7 +678,7 @@ scaleabilty of parallel queues, with the easy synchronization of atomic queues. .Ordered Queue Scheduling -image::../images/ordered_queue.png[align="center"] +image::../images/ordered_queue.svg[align="center"] When scheduling events from an ordered queue, the scheduler dispatches multiple events from the queue in parallel to different threads, however the scheduler