* [dpdk-dev] [PATCH] maintainers: start a Linux-style file
@ 2015-01-23 12:54 Thomas Monjalon
2015-01-23 14:18 ` Neil Horman
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Thomas Monjalon @ 2015-01-23 12:54 UTC (permalink / raw)
To: dev
This MAINTAINERS file is inspired from the Linux one.
Almost all files are split into areas in order to identify maintainers of
each DPDK area. Note that a maintainer is not a git tree manager.
Candidates are welcome to send a patch to sign up for one or several areas.
There is a script to check covering, especially when adding or moving files.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
MAINTAINERS | 388 +++++++++++++++++++++++++++++++++++++++++++
scripts/check-maintainers.sh | 85 ++++++++++
2 files changed, 473 insertions(+)
create mode 100644 MAINTAINERS
create mode 100755 scripts/check-maintainers.sh
diff --git a/MAINTAINERS b/MAINTAINERS
new file mode 100644
index 0000000..1f7d04a
--- /dev/null
+++ b/MAINTAINERS
@@ -0,0 +1,388 @@
+DPDK Maintainers
+================
+
+The intention of this file is to provide a set of names that we can rely on
+for helping in patch reviews and questions.
+These names are additional recipients for emails sent to dev@dpdk.org.
+Please avoid private emails.
+
+Descriptions of section entries:
+
+ M: Maintainer's Full Name <address@domain>
+ T: Git tree location.
+ F: Files and directories with wildcard patterns.
+ A trailing slash includes all files and subdirectory files.
+ A wildcard includes all files but not subdirectories.
+ One pattern per line. Multiple F: lines acceptable.
+ X: Files and directories exclusion, same rules as F:
+ K: Keyword regex pattern to match content.
+ One regex pattern per line. Multiple K: lines acceptable.
+
+
+General Project Administration
+------------------------------
+M: Thomas Monjalon <thomas.monjalon@6wind.com>
+T: git://dpdk.org/dpdk
+F: MAINTAINERS
+F: scripts/check-maintainers.sh
+
+
+Security Issues
+---------------
+M: maintainers@dpdk.org
+
+
+Documentation (with overlaps)
+-------------
+F: doc/
+
+
+Build System
+------------
+F: GNUmakefile
+F: Makefile
+F: config/
+F: mk/
+F: pkg/
+F: scripts/depdirs-rule.sh
+F: scripts/gen-build-mk.sh
+F: scripts/gen-config-h.sh
+F: scripts/relpath.sh
+
+
+Environment Abstraction Layer
+-----------------------------
+
+EAL API and common code
+M: Thomas Monjalon <thomas.monjalon@6wind.com>
+F: lib/librte_eal/common/*
+F: lib/librte_eal/common/include/*
+F: lib/librte_eal/common/include/generic/
+F: app/test/test_alarm.c
+F: app/test/test_atomic.c
+F: app/test/test_byteorder.c
+F: app/test/test_common.c
+F: app/test/test_cpuflags.c
+F: app/test/test_cycles.c
+F: app/test/test_debug.c
+F: app/test/test_devargs.c
+F: app/test/test_eal*
+F: app/test/test_errno.c
+F: app/test/test_func_reentrancy.c
+F: app/test/test_interrupts.c
+F: app/test/test_logs.c
+F: app/test/test_memcpy*
+F: app/test/test_memory.c
+F: app/test/test_memzone.c
+F: app/test/test_pci.c
+F: app/test/test_per_lcore.c
+F: app/test/test_prefetch.c
+F: app/test/test_rwlock.c
+F: app/test/test_spinlock.c
+F: app/test/test_string_fns.c
+F: app/test/test_tailq.c
+F: app/test/test_version.c
+
+Secondary process
+K: RTE_PROC_
+F: doc/guides/prog_guide/multi_proc_support.rst
+F: app/test/test_mp_secondary.c
+F: examples/multi_process/
+F: doc/guides/sample_app_ug/multi_process.rst
+
+IBM Power
+F: lib/librte_eal/common/include/arch/ppc_64/
+
+Intel x86
+F: lib/librte_eal/common/include/arch/x86/
+
+Linux EAL (with overlaps)
+F: lib/librte_eal/linuxapp/Makefile
+F: lib/librte_eal/linuxapp/eal/
+F: doc/guides/linux_gsg/
+
+Linux UIO
+F: lib/librte_eal/linuxapp/igb_uio/
+F: lib/librte_eal/linuxapp/eal/*uio*
+
+Linux VFIO
+F: lib/librte_eal/linuxapp/eal/*vfio*
+
+Linux Xen
+F: lib/librte_eal/linuxapp/xen_dom0/
+F: lib/librte_eal/linuxapp/eal/*xen*
+F: lib/librte_eal/linuxapp/eal/include/exec-env/rte_dom0_common.h
+F: lib/librte_mempool/rte_dom0_mempool.c
+F: lib/librte_pmd_xenvirt/
+F: app/test-pmd/mempool_*
+F: examples/vhost_xen/
+F: doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst
+
+FreeBSD EAL (with overlaps)
+F: lib/librte_eal/bsdapp/Makefile
+F: lib/librte_eal/bsdapp/eal/
+F: doc/guides/freebsd_gsg/
+
+FreeBSD contigmem
+F: lib/librte_eal/bsdapp/contigmem/
+
+FreeBSD UIO
+F: lib/librte_eal/bsdapp/nic_uio/
+
+
+Core Libraries
+--------------
+
+Memory management
+F: lib/librte_malloc/
+F: doc/guides/prog_guide/malloc_lib.rst
+F: app/test/test_malloc.c
+F: lib/librte_mempool/
+F: doc/guides/prog_guide/mempool_lib.rst
+F: app/test/test_mempool*
+F: app/test/test_func_reentrancy.c
+
+Ring queue
+F: lib/librte_ring/
+F: app/test/test_ring*
+F: app/test/test_func_reentrancy.c
+
+Packet buffer
+F: lib/librte_mbuf/
+F: doc/guides/prog_guide/mbuf_lib.rst
+F: app/test/test_mbuf.c
+
+Ethernet API
+M: Thomas Monjalon <thomas.monjalon@6wind.com>
+F: lib/librte_ether/
+
+
+Drivers
+-------
+
+Link bonding
+F: lib/librte_pmd_bond/
+F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
+F: app/test/test_link_bonding.c
+
+Linux KNI
+F: lib/librte_eal/linuxapp/kni/
+F: lib/librte_kni/
+F: doc/guides/prog_guide/kernel_nic_interface.rst
+F: app/test/test_kni.c
+F: examples/kni/
+F: doc/guides/sample_app_ug/kernel_nic_interface.rst
+
+Linux AF_PACKET
+F: lib/librte_pmd_af_packet/
+
+Cisco enic
+F: lib/librte_pmd_enic/
+
+Intel e1000
+F: lib/librte_pmd_e1000/
+
+Intel ixgbe
+F: lib/librte_pmd_ixgbe/
+
+Intel i40e
+F: lib/librte_pmd_i40e/
+
+RedHat virtio
+F: lib/librte_pmd_virtio/
+F: doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
+F: lib/librte_vhost/
+F: doc/guides/prog_guide/vhost_lib.rst
+F: examples/vhost/
+F: doc/guides/sample_app_ug/vhost.rst
+
+VMware vmxnet3
+F: lib/librte_pmd_vmxnet3/
+F: doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst
+
+PCAP PMD
+F: lib/librte_pmd_pcap/
+F: doc/guides/prog_guide/libpcap_ring_based_poll_mode_drv.rst
+
+Ring PMD
+F: lib/librte_pmd_ring/
+F: doc/guides/prog_guide/ring_lib.rst
+F: app/test/test_pmd_ring.c
+
+
+Packet processing
+-----------------
+
+Network headers
+F: lib/librte_net/
+
+IP fragmentation & reassembly
+F: lib/librte_ip_frag/
+F: doc/guides/prog_guide/ip_fragment_reassembly_lib.rst
+F: examples/ip_fragmentation/
+F: doc/guides/sample_app_ug/ip_frag.rst
+F: examples/ip_reassembly/
+F: doc/guides/sample_app_ug/ip_reassembly.rst
+
+Distributor
+F: lib/librte_distributor/
+F: doc/guides/prog_guide/packet_distrib_lib.rst
+F: app/test/test_distributor*
+F: examples/distributor/
+F: doc/guides/sample_app_ug/dist_app.rst
+
+Hierarchical scheduler
+F: lib/librte_sched/
+F: doc/guides/prog_guide/qos_framework.rst
+F: app/test/test_red.c
+F: app/test/test_sched.c
+F: examples/qos_sched/
+F: doc/guides/sample_app_ug/qos_scheduler.rst
+
+
+Packet Framework
+----------------
+F: lib/librte_pipeline/
+F: lib/librte_port/
+F: lib/librte_table/
+F: doc/guides/prog_guide/packet_framework.rst
+F: app/test/test_table*
+F: app/test-pipeline/
+F: doc/guides/sample_app_ug/test_pipeline.rst
+F: examples/ip_pipeline/
+F: doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
+
+
+Algorithms
+----------
+
+ACL
+F: lib/librte_acl/
+F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
+F: app/test-acl/
+F: app/test/test_acl.*
+F: examples/l3fwd-acl/
+F: doc/guides/sample_app_ug/l3_forward_access_ctrl.rst
+
+Hashes
+F: lib/librte_hash/
+F: doc/guides/prog_guide/hash_lib.rst
+F: app/test/test_hash*
+F: app/test/test_func_reentrancy.c
+
+LPM
+F: lib/librte_lpm/
+F: doc/guides/prog_guide/lpm*
+F: app/test/test_lpm*
+F: app/test/test_func_reentrancy.c
+
+Traffic metering
+F: lib/librte_meter/
+F: doc/guides/sample_app_ug/qos_scheduler.rst
+F: app/test/test_meter.c
+F: examples/qos_meter/
+F: doc/guides/sample_app_ug/qos_metering.rst
+
+
+Other libraries
+---------------
+
+Configuration file
+F: lib/librte_cfgfile/
+
+Interactive command line
+F: lib/librte_cmdline/
+F: app/cmdline_test/
+F: app/test/test_cmdline*
+F: examples/cmdline/
+F: doc/guides/sample_app_ug/cmd_line.rst
+
+Qemu IVSHMEM
+F: lib/librte_ivshmem/
+F: lib/librte_eal/linuxapp/eal/eal_ivshmem.c
+F: doc/guides/prog_guide/ivshmem_lib.rst
+F: app/test/test_ivshmem.c
+F: examples/l2fwd-ivshmem/
+
+Key/Value parsing
+F: lib/librte_kvargs/
+F: app/test/test_kvargs.c
+
+Power management
+F: lib/librte_power/
+F: doc/guides/prog_guide/power_man.rst
+F: app/test/test_power*
+F: examples/l3fwd-power/
+F: doc/guides/sample_app_ug/l3_forward_power_man.rst
+F: examples/vm_power_manager/
+F: doc/guides/sample_app_ug/vm_power_management.rst
+
+Timers
+F: lib/librte_timer/
+F: doc/guides/prog_guide/timer_lib.rst
+F: app/test/test_timer*
+F: examples/timer/
+F: doc/guides/sample_app_ug/timer.rst
+
+
+Test Applications
+-----------------
+
+Unit tests framework
+F: app/test/autotest*
+F: app/test/commands.c
+F: app/test/packet_burst_generator.c
+F: app/test/packet_burst_generator.h
+F: app/test/process.h
+F: app/test/test.c
+F: app/test/test.h
+F: app/test/test_pmd_perf.c
+F: app/test/virtual_pmd.c
+F: app/test/virtual_pmd.h
+
+Driver testing tool
+F: app/test-pmd/
+F: doc/guides/testpmd_app_ug/
+
+
+Other Example Applications
+--------------------------
+
+F: examples/dpdk_qat/
+F: doc/guides/sample_app_ug/intel_quickassist.rst
+
+F: examples/exception_path/
+F: doc/guides/sample_app_ug/exception_path.rst
+
+F: examples/helloworld/
+F: doc/guides/sample_app_ug/hello_world.rst
+
+F: examples/ipv4_multicast/
+F: doc/guides/sample_app_ug/ipv4_multicast.rst
+
+F: examples/l2fwd/
+F: doc/guides/sample_app_ug/l2_forward_real_virtual.rst
+
+F: examples/l3fwd/
+F: doc/guides/sample_app_ug/l3_forward.rst
+
+F: examples/l3fwd-vf/
+F: doc/guides/sample_app_ug/l3_forward_virtual.rst
+
+F: examples/link_status_interrupt/
+F: doc/guides/sample_app_ug/link_status_intr.rst
+
+F: examples/load_balancer/
+F: doc/guides/sample_app_ug/load_balancer.rst
+
+F: examples/netmap_compat/
+F: doc/guides/sample_app_ug/netmap_compatibility.rst
+
+F: examples/quota_watermark/
+F: doc/guides/sample_app_ug/quota_watermark.rst
+
+F: examples/skeleton/
+
+F: examples/vmdq/
+F: examples/vmdq_dcb/
+F: doc/guides/sample_app_ug/vmdq_dcb_forwarding.rst
diff --git a/scripts/check-maintainers.sh b/scripts/check-maintainers.sh
new file mode 100755
index 0000000..fbee8bb
--- /dev/null
+++ b/scripts/check-maintainers.sh
@@ -0,0 +1,85 @@
+#! /bin/sh
+
+# Do some basic checks in MAINTAINERS file
+
+cd $(dirname $0)/..
+
+# Get files matching paths with wildcards and / meaning recursing
+files () # <path> [<path> ...]
+{
+ if [ -z "$1" ] ; then
+ return
+ fi
+ if [ -d .git ] ; then
+ git ls-files "$1"
+ else
+ find "$1" -type f |
+ sed 's,^\./,,'
+ fi |
+ # if not ended by /
+ if ! echo "$1" | grep -q '/[[:space:]]*$' ; then
+ # filter out deeper directories
+ sed "/\(\/[^/]*\)\{$(($(echo "$1" | grep -o / | wc -l) + 1))\}/d"
+ else
+ cat
+ fi
+ shift
+ files "$@"
+}
+
+# Get all files matching F: and X: fields
+parse_fx () # <index file>
+{
+ IFS='
+'
+ # parse each line excepted underlining
+ for line in $( (grep -v '^-\+$' $1 && echo) | sed 's,^$,§,') ; do
+ if echo "$line" | grep -q '^§$' ; then
+ # empty line delimit end of section
+ whitelist=$(files $flines)
+ blacklist=$(files $xlines)
+ match=$(aminusb "$whitelist" "$blacklist")
+ if [ -n "$match" ] ; then
+ echo "# $title"
+ echo "$match"
+ fi
+ # flush section
+ unset flines
+ unset xlines
+ elif echo "$line" | grep -q '^[A-Z]: ' ; then
+ # file matching pattern
+ flines=$(add_line_to_if "$line" "$flines" "F: ")
+ # file exclusion pattern
+ xlines=$(add_line_to_if "$line" "$xlines" "X: ")
+ else # assume it is a title
+ title="$line"
+ fi
+ done
+}
+
+# Add a line to a set of lines if it begins with right pattern
+add_line_to_if () # <new line> <lines> <head pattern>
+{
+ (
+ echo "$2"
+ echo "$1" | sed -rn "s,^$3(.*),\1,p"
+ ) |
+ sed '/^$/d'
+}
+
+# Subtract two sets of lines
+aminusb () # <lines a> <lines b>
+{
+ printf "$1\n$2\n$2" | sort | uniq -u | sed '/^$/d'
+}
+
+all=$(files ./)
+listed=$(parse_fx MAINTAINERS | grep -v '^#' | sort -u)
+
+echo '##########'
+echo '# files not listed'
+echo '##########'
+aminusb "$all" "$listed"
+
+# TODO: check overlaps
+# TODO: check orphan area
--
2.2.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] maintainers: start a Linux-style file
2015-01-23 12:54 [dpdk-dev] [PATCH] maintainers: start a Linux-style file Thomas Monjalon
@ 2015-01-23 14:18 ` Neil Horman
2015-01-23 14:46 ` Thomas Monjalon
2015-01-23 18:12 ` [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD John W. Linville
2015-01-28 10:50 ` [dpdk-dev] [PATCH v2] maintainers: start a Linux-style file Thomas Monjalon
2 siblings, 1 reply; 9+ messages in thread
From: Neil Horman @ 2015-01-23 14:18 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Fri, Jan 23, 2015 at 01:54:13PM +0100, Thomas Monjalon wrote:
> This MAINTAINERS file is inspired from the Linux one.
>
> Almost all files are split into areas in order to identify maintainers of
> each DPDK area. Note that a maintainer is not a git tree manager.
> Candidates are welcome to send a patch to sign up for one or several areas.
>
> There is a script to check covering, especially when adding or moving files.
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> ---
> MAINTAINERS | 388 +++++++++++++++++++++++++++++++++++++++++++
> scripts/check-maintainers.sh | 85 ++++++++++
> 2 files changed, 473 insertions(+)
> create mode 100644 MAINTAINERS
> create mode 100755 scripts/check-maintainers.sh
>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
feel free to add me in as the AF_PACKET pmd maintainer if Linville doesn't
want the official title.
One question, the security issues list, is that active already and in use? Can
we document the membership of that list so we know who's handling security
issues?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] maintainers: start a Linux-style file
2015-01-23 14:18 ` Neil Horman
@ 2015-01-23 14:46 ` Thomas Monjalon
2015-01-23 15:52 ` Neil Horman
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Monjalon @ 2015-01-23 14:46 UTC (permalink / raw)
To: Neil Horman; +Cc: dev
2015-01-23 09:18, Neil Horman:
> One question, the security issues list, is that active already and in use?
It is "in use" since the beginning of dpdk.org. But traffic is very very low.
> Can we document the membership of that list so we know who's handling security
> issues?
Only me but you are welcome:
http://dpdk.org/ml/listinfo/maintainers
--
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] maintainers: start a Linux-style file
2015-01-23 14:46 ` Thomas Monjalon
@ 2015-01-23 15:52 ` Neil Horman
0 siblings, 0 replies; 9+ messages in thread
From: Neil Horman @ 2015-01-23 15:52 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev
On Fri, Jan 23, 2015 at 03:46:08PM +0100, Thomas Monjalon wrote:
> 2015-01-23 09:18, Neil Horman:
> > One question, the security issues list, is that active already and in use?
>
> It is "in use" since the beginning of dpdk.org. But traffic is very very low.
>
> > Can we document the membership of that list so we know who's handling security
> > issues?
>
> Only me but you are welcome:
> http://dpdk.org/ml/listinfo/maintainers
>
> --
> Thomas>
Thanks!
Neil
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD
2015-01-23 12:54 [dpdk-dev] [PATCH] maintainers: start a Linux-style file Thomas Monjalon
2015-01-23 14:18 ` Neil Horman
@ 2015-01-23 18:12 ` John W. Linville
2015-01-23 18:16 ` Neil Horman
2015-01-28 10:50 ` [dpdk-dev] [PATCH v2] maintainers: start a Linux-style file Thomas Monjalon
2 siblings, 1 reply; 9+ messages in thread
From: John W. Linville @ 2015-01-23 18:12 UTC (permalink / raw)
To: dev
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 1f7d04a9ec2b..5fccdbb1618c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -174,6 +174,7 @@ F: examples/kni/
F: doc/guides/sample_app_ug/kernel_nic_interface.rst
Linux AF_PACKET
+M: John W. Linville <linville@tuxdriver.com>
F: lib/librte_pmd_af_packet/
Cisco enic
--
2.1.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD
2015-01-23 18:12 ` [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD John W. Linville
@ 2015-01-23 18:16 ` Neil Horman
2015-01-29 21:03 ` Thomas Monjalon
0 siblings, 1 reply; 9+ messages in thread
From: Neil Horman @ 2015-01-23 18:16 UTC (permalink / raw)
To: John W. Linville; +Cc: dev
On Fri, Jan 23, 2015 at 01:12:25PM -0500, John W. Linville wrote:
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
> ---
> MAINTAINERS | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 1f7d04a9ec2b..5fccdbb1618c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -174,6 +174,7 @@ F: examples/kni/
> F: doc/guides/sample_app_ug/kernel_nic_interface.rst
>
> Linux AF_PACKET
> +M: John W. Linville <linville@tuxdriver.com>
> F: lib/librte_pmd_af_packet/
>
> Cisco enic
> --
> 2.1.0
>
>
Works just as well for me
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Thanks John!
Neil
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [PATCH v2] maintainers: start a Linux-style file
2015-01-23 12:54 [dpdk-dev] [PATCH] maintainers: start a Linux-style file Thomas Monjalon
2015-01-23 14:18 ` Neil Horman
2015-01-23 18:12 ` [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD John W. Linville
@ 2015-01-28 10:50 ` Thomas Monjalon
2015-01-29 20:57 ` Thomas Monjalon
2 siblings, 1 reply; 9+ messages in thread
From: Thomas Monjalon @ 2015-01-28 10:50 UTC (permalink / raw)
To: dev
This MAINTAINERS file is inspired from the Linux one.
Almost all files are split into areas in order to identify maintainers of
each DPDK area. Note that a maintainer is not a git tree manager.
Candidates are welcome to send a patch to sign up for one or several areas.
There is a script to check coverage, especially when adding or moving files.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
---
Changes in v2:
- add copyright and licence to check-maintainers.sh
- minor improvements in the script
---
MAINTAINERS | 388 +++++++++++++++++++++++++++++++++++++++++++
scripts/check-maintainers.sh | 117 +++++++++++++
2 files changed, 505 insertions(+)
create mode 100644 MAINTAINERS
create mode 100755 scripts/check-maintainers.sh
diff --git a/MAINTAINERS b/MAINTAINERS
new file mode 100644
index 0000000..1f7d04a
--- /dev/null
+++ b/MAINTAINERS
@@ -0,0 +1,388 @@
+DPDK Maintainers
+================
+
+The intention of this file is to provide a set of names that we can rely on
+for helping in patch reviews and questions.
+These names are additional recipients for emails sent to dev@dpdk.org.
+Please avoid private emails.
+
+Descriptions of section entries:
+
+ M: Maintainer's Full Name <address@domain>
+ T: Git tree location.
+ F: Files and directories with wildcard patterns.
+ A trailing slash includes all files and subdirectory files.
+ A wildcard includes all files but not subdirectories.
+ One pattern per line. Multiple F: lines acceptable.
+ X: Files and directories exclusion, same rules as F:
+ K: Keyword regex pattern to match content.
+ One regex pattern per line. Multiple K: lines acceptable.
+
+
+General Project Administration
+------------------------------
+M: Thomas Monjalon <thomas.monjalon@6wind.com>
+T: git://dpdk.org/dpdk
+F: MAINTAINERS
+F: scripts/check-maintainers.sh
+
+
+Security Issues
+---------------
+M: maintainers@dpdk.org
+
+
+Documentation (with overlaps)
+-------------
+F: doc/
+
+
+Build System
+------------
+F: GNUmakefile
+F: Makefile
+F: config/
+F: mk/
+F: pkg/
+F: scripts/depdirs-rule.sh
+F: scripts/gen-build-mk.sh
+F: scripts/gen-config-h.sh
+F: scripts/relpath.sh
+
+
+Environment Abstraction Layer
+-----------------------------
+
+EAL API and common code
+M: Thomas Monjalon <thomas.monjalon@6wind.com>
+F: lib/librte_eal/common/*
+F: lib/librte_eal/common/include/*
+F: lib/librte_eal/common/include/generic/
+F: app/test/test_alarm.c
+F: app/test/test_atomic.c
+F: app/test/test_byteorder.c
+F: app/test/test_common.c
+F: app/test/test_cpuflags.c
+F: app/test/test_cycles.c
+F: app/test/test_debug.c
+F: app/test/test_devargs.c
+F: app/test/test_eal*
+F: app/test/test_errno.c
+F: app/test/test_func_reentrancy.c
+F: app/test/test_interrupts.c
+F: app/test/test_logs.c
+F: app/test/test_memcpy*
+F: app/test/test_memory.c
+F: app/test/test_memzone.c
+F: app/test/test_pci.c
+F: app/test/test_per_lcore.c
+F: app/test/test_prefetch.c
+F: app/test/test_rwlock.c
+F: app/test/test_spinlock.c
+F: app/test/test_string_fns.c
+F: app/test/test_tailq.c
+F: app/test/test_version.c
+
+Secondary process
+K: RTE_PROC_
+F: doc/guides/prog_guide/multi_proc_support.rst
+F: app/test/test_mp_secondary.c
+F: examples/multi_process/
+F: doc/guides/sample_app_ug/multi_process.rst
+
+IBM Power
+F: lib/librte_eal/common/include/arch/ppc_64/
+
+Intel x86
+F: lib/librte_eal/common/include/arch/x86/
+
+Linux EAL (with overlaps)
+F: lib/librte_eal/linuxapp/Makefile
+F: lib/librte_eal/linuxapp/eal/
+F: doc/guides/linux_gsg/
+
+Linux UIO
+F: lib/librte_eal/linuxapp/igb_uio/
+F: lib/librte_eal/linuxapp/eal/*uio*
+
+Linux VFIO
+F: lib/librte_eal/linuxapp/eal/*vfio*
+
+Linux Xen
+F: lib/librte_eal/linuxapp/xen_dom0/
+F: lib/librte_eal/linuxapp/eal/*xen*
+F: lib/librte_eal/linuxapp/eal/include/exec-env/rte_dom0_common.h
+F: lib/librte_mempool/rte_dom0_mempool.c
+F: lib/librte_pmd_xenvirt/
+F: app/test-pmd/mempool_*
+F: examples/vhost_xen/
+F: doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst
+
+FreeBSD EAL (with overlaps)
+F: lib/librte_eal/bsdapp/Makefile
+F: lib/librte_eal/bsdapp/eal/
+F: doc/guides/freebsd_gsg/
+
+FreeBSD contigmem
+F: lib/librte_eal/bsdapp/contigmem/
+
+FreeBSD UIO
+F: lib/librte_eal/bsdapp/nic_uio/
+
+
+Core Libraries
+--------------
+
+Memory management
+F: lib/librte_malloc/
+F: doc/guides/prog_guide/malloc_lib.rst
+F: app/test/test_malloc.c
+F: lib/librte_mempool/
+F: doc/guides/prog_guide/mempool_lib.rst
+F: app/test/test_mempool*
+F: app/test/test_func_reentrancy.c
+
+Ring queue
+F: lib/librte_ring/
+F: app/test/test_ring*
+F: app/test/test_func_reentrancy.c
+
+Packet buffer
+F: lib/librte_mbuf/
+F: doc/guides/prog_guide/mbuf_lib.rst
+F: app/test/test_mbuf.c
+
+Ethernet API
+M: Thomas Monjalon <thomas.monjalon@6wind.com>
+F: lib/librte_ether/
+
+
+Drivers
+-------
+
+Link bonding
+F: lib/librte_pmd_bond/
+F: doc/guides/prog_guide/link_bonding_poll_mode_drv_lib.rst
+F: app/test/test_link_bonding.c
+
+Linux KNI
+F: lib/librte_eal/linuxapp/kni/
+F: lib/librte_kni/
+F: doc/guides/prog_guide/kernel_nic_interface.rst
+F: app/test/test_kni.c
+F: examples/kni/
+F: doc/guides/sample_app_ug/kernel_nic_interface.rst
+
+Linux AF_PACKET
+F: lib/librte_pmd_af_packet/
+
+Cisco enic
+F: lib/librte_pmd_enic/
+
+Intel e1000
+F: lib/librte_pmd_e1000/
+
+Intel ixgbe
+F: lib/librte_pmd_ixgbe/
+
+Intel i40e
+F: lib/librte_pmd_i40e/
+
+RedHat virtio
+F: lib/librte_pmd_virtio/
+F: doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
+F: lib/librte_vhost/
+F: doc/guides/prog_guide/vhost_lib.rst
+F: examples/vhost/
+F: doc/guides/sample_app_ug/vhost.rst
+
+VMware vmxnet3
+F: lib/librte_pmd_vmxnet3/
+F: doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst
+
+PCAP PMD
+F: lib/librte_pmd_pcap/
+F: doc/guides/prog_guide/libpcap_ring_based_poll_mode_drv.rst
+
+Ring PMD
+F: lib/librte_pmd_ring/
+F: doc/guides/prog_guide/ring_lib.rst
+F: app/test/test_pmd_ring.c
+
+
+Packet processing
+-----------------
+
+Network headers
+F: lib/librte_net/
+
+IP fragmentation & reassembly
+F: lib/librte_ip_frag/
+F: doc/guides/prog_guide/ip_fragment_reassembly_lib.rst
+F: examples/ip_fragmentation/
+F: doc/guides/sample_app_ug/ip_frag.rst
+F: examples/ip_reassembly/
+F: doc/guides/sample_app_ug/ip_reassembly.rst
+
+Distributor
+F: lib/librte_distributor/
+F: doc/guides/prog_guide/packet_distrib_lib.rst
+F: app/test/test_distributor*
+F: examples/distributor/
+F: doc/guides/sample_app_ug/dist_app.rst
+
+Hierarchical scheduler
+F: lib/librte_sched/
+F: doc/guides/prog_guide/qos_framework.rst
+F: app/test/test_red.c
+F: app/test/test_sched.c
+F: examples/qos_sched/
+F: doc/guides/sample_app_ug/qos_scheduler.rst
+
+
+Packet Framework
+----------------
+F: lib/librte_pipeline/
+F: lib/librte_port/
+F: lib/librte_table/
+F: doc/guides/prog_guide/packet_framework.rst
+F: app/test/test_table*
+F: app/test-pipeline/
+F: doc/guides/sample_app_ug/test_pipeline.rst
+F: examples/ip_pipeline/
+F: doc/guides/sample_app_ug/internet_proto_ip_pipeline.rst
+
+
+Algorithms
+----------
+
+ACL
+F: lib/librte_acl/
+F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
+F: app/test-acl/
+F: app/test/test_acl.*
+F: examples/l3fwd-acl/
+F: doc/guides/sample_app_ug/l3_forward_access_ctrl.rst
+
+Hashes
+F: lib/librte_hash/
+F: doc/guides/prog_guide/hash_lib.rst
+F: app/test/test_hash*
+F: app/test/test_func_reentrancy.c
+
+LPM
+F: lib/librte_lpm/
+F: doc/guides/prog_guide/lpm*
+F: app/test/test_lpm*
+F: app/test/test_func_reentrancy.c
+
+Traffic metering
+F: lib/librte_meter/
+F: doc/guides/sample_app_ug/qos_scheduler.rst
+F: app/test/test_meter.c
+F: examples/qos_meter/
+F: doc/guides/sample_app_ug/qos_metering.rst
+
+
+Other libraries
+---------------
+
+Configuration file
+F: lib/librte_cfgfile/
+
+Interactive command line
+F: lib/librte_cmdline/
+F: app/cmdline_test/
+F: app/test/test_cmdline*
+F: examples/cmdline/
+F: doc/guides/sample_app_ug/cmd_line.rst
+
+Qemu IVSHMEM
+F: lib/librte_ivshmem/
+F: lib/librte_eal/linuxapp/eal/eal_ivshmem.c
+F: doc/guides/prog_guide/ivshmem_lib.rst
+F: app/test/test_ivshmem.c
+F: examples/l2fwd-ivshmem/
+
+Key/Value parsing
+F: lib/librte_kvargs/
+F: app/test/test_kvargs.c
+
+Power management
+F: lib/librte_power/
+F: doc/guides/prog_guide/power_man.rst
+F: app/test/test_power*
+F: examples/l3fwd-power/
+F: doc/guides/sample_app_ug/l3_forward_power_man.rst
+F: examples/vm_power_manager/
+F: doc/guides/sample_app_ug/vm_power_management.rst
+
+Timers
+F: lib/librte_timer/
+F: doc/guides/prog_guide/timer_lib.rst
+F: app/test/test_timer*
+F: examples/timer/
+F: doc/guides/sample_app_ug/timer.rst
+
+
+Test Applications
+-----------------
+
+Unit tests framework
+F: app/test/autotest*
+F: app/test/commands.c
+F: app/test/packet_burst_generator.c
+F: app/test/packet_burst_generator.h
+F: app/test/process.h
+F: app/test/test.c
+F: app/test/test.h
+F: app/test/test_pmd_perf.c
+F: app/test/virtual_pmd.c
+F: app/test/virtual_pmd.h
+
+Driver testing tool
+F: app/test-pmd/
+F: doc/guides/testpmd_app_ug/
+
+
+Other Example Applications
+--------------------------
+
+F: examples/dpdk_qat/
+F: doc/guides/sample_app_ug/intel_quickassist.rst
+
+F: examples/exception_path/
+F: doc/guides/sample_app_ug/exception_path.rst
+
+F: examples/helloworld/
+F: doc/guides/sample_app_ug/hello_world.rst
+
+F: examples/ipv4_multicast/
+F: doc/guides/sample_app_ug/ipv4_multicast.rst
+
+F: examples/l2fwd/
+F: doc/guides/sample_app_ug/l2_forward_real_virtual.rst
+
+F: examples/l3fwd/
+F: doc/guides/sample_app_ug/l3_forward.rst
+
+F: examples/l3fwd-vf/
+F: doc/guides/sample_app_ug/l3_forward_virtual.rst
+
+F: examples/link_status_interrupt/
+F: doc/guides/sample_app_ug/link_status_intr.rst
+
+F: examples/load_balancer/
+F: doc/guides/sample_app_ug/load_balancer.rst
+
+F: examples/netmap_compat/
+F: doc/guides/sample_app_ug/netmap_compatibility.rst
+
+F: examples/quota_watermark/
+F: doc/guides/sample_app_ug/quota_watermark.rst
+
+F: examples/skeleton/
+
+F: examples/vmdq/
+F: examples/vmdq_dcb/
+F: doc/guides/sample_app_ug/vmdq_dcb_forwarding.rst
diff --git a/scripts/check-maintainers.sh b/scripts/check-maintainers.sh
new file mode 100755
index 0000000..2687cad
--- /dev/null
+++ b/scripts/check-maintainers.sh
@@ -0,0 +1,117 @@
+#! /bin/sh
+
+# BSD LICENSE
+#
+# Copyright 2015 6WIND S.A.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of 6WIND S.A. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Do some basic checks in MAINTAINERS file
+
+cd $(dirname $0)/..
+
+# Get files matching paths with wildcards and / meaning recursing
+files () # <path> [<path> ...]
+{
+ if [ -z "$1" ] ; then
+ return
+ fi
+ if [ -d .git ] ; then
+ git ls-files "$1"
+ else
+ find "$1" -type f |
+ sed 's,^\./,,'
+ fi |
+ # if not ended by /
+ if ! echo "$1" | grep -q '/[[:space:]]*$' ; then
+ # filter out deeper directories
+ sed "/\(\/[^/]*\)\{$(($(echo "$1" | grep -o / | wc -l) + 1))\}/d"
+ else
+ cat
+ fi
+ # next path
+ shift
+ files "$@"
+}
+
+# Get all files matching F: and X: fields
+parse_fx () # <index file>
+{
+ IFS='
+'
+ # parse each line excepted underlining
+ for line in $( (sed '/^-\+$/d' $1 ; echo) | sed 's,^$,§,') ; do
+ if echo "$line" | grep -q '^§$' ; then
+ # empty line delimit end of section
+ whitelist=$(files $flines)
+ blacklist=$(files $xlines)
+ match=$(aminusb "$whitelist" "$blacklist")
+ if [ -n "$match" ] ; then
+ echo "# $title"
+ echo "$match"
+ fi
+ # flush section
+ unset flines
+ unset xlines
+ elif echo "$line" | grep -q '^[A-Z]: ' ; then
+ # file matching pattern
+ flines=$(add_line_to_if "$line" "$flines" 'F: ')
+ # file exclusion pattern
+ xlines=$(add_line_to_if "$line" "$xlines" 'X: ')
+ else # assume it is a title
+ title="$line"
+ fi
+ done
+}
+
+# Add a line to a set of lines if it begins with right pattern
+add_line_to_if () # <new line> <lines> <head pattern>
+{
+ (
+ echo "$2"
+ echo "$1" | sed -rn "s,^$3(.*),\1,p"
+ ) |
+ sed '/^$/d'
+}
+
+# Subtract two sets of lines
+aminusb () # <lines a> <lines b>
+{
+ printf "$1\n$2\n$2" | sort | uniq -u | sed '/^$/d'
+}
+
+all=$(files ./)
+listed=$(parse_fx MAINTAINERS | sed '/^#/d' | sort -u)
+
+echo '##########'
+echo '# files not listed'
+echo '##########'
+aminusb "$all" "$listed"
+
+# TODO: check patterns that match nothing
+# TODO: check overlaps
+# TODO: check orphan areas
--
2.2.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH v2] maintainers: start a Linux-style file
2015-01-28 10:50 ` [dpdk-dev] [PATCH v2] maintainers: start a Linux-style file Thomas Monjalon
@ 2015-01-29 20:57 ` Thomas Monjalon
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2015-01-29 20:57 UTC (permalink / raw)
To: dev
2015-01-28 11:50, Thomas Monjalon:
> This MAINTAINERS file is inspired from the Linux one.
>
> Almost all files are split into areas in order to identify maintainers of
> each DPDK area. Note that a maintainer is not a git tree manager.
> Candidates are welcome to send a patch to sign up for one or several areas.
>
> There is a script to check coverage, especially when adding or moving files.
>
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
Applied
New maintainers can now be registered by sending a patch and getting approved.
You are welcome.
--
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD
2015-01-23 18:16 ` Neil Horman
@ 2015-01-29 21:03 ` Thomas Monjalon
0 siblings, 0 replies; 9+ messages in thread
From: Thomas Monjalon @ 2015-01-29 21:03 UTC (permalink / raw)
To: Neil Horman, John W. Linville; +Cc: dev
2015-01-23 13:16, Neil Horman:
> On Fri, Jan 23, 2015 at 01:12:25PM -0500, John W. Linville wrote:
> > Signed-off-by: John W. Linville <linville@tuxdriver.com>
> > ---
> > MAINTAINERS | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 1f7d04a9ec2b..5fccdbb1618c 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -174,6 +174,7 @@ F: examples/kni/
> > F: doc/guides/sample_app_ug/kernel_nic_interface.rst
> >
> > Linux AF_PACKET
> > +M: John W. Linville <linville@tuxdriver.com>
> > F: lib/librte_pmd_af_packet/
> >
> > Cisco enic
> Works just as well for me
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
> Thanks John!
> Neil
Applied
About AF_PACKET PMD, I think it would be convenient to have a doc
explaining its goal, how it works and what are the dependencies in kernel.
Thank you
--
Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-01-29 21:04 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-23 12:54 [dpdk-dev] [PATCH] maintainers: start a Linux-style file Thomas Monjalon
2015-01-23 14:18 ` Neil Horman
2015-01-23 14:46 ` Thomas Monjalon
2015-01-23 15:52 ` Neil Horman
2015-01-23 18:12 ` [dpdk-dev] [PATCH] MAINTAINERS: claim responsibility for Linux AF_PACKET PMD John W. Linville
2015-01-23 18:16 ` Neil Horman
2015-01-29 21:03 ` Thomas Monjalon
2015-01-28 10:50 ` [dpdk-dev] [PATCH v2] maintainers: start a Linux-style file Thomas Monjalon
2015-01-29 20:57 ` Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).