Re: [ovs-dev] [PATCH v2 6/6] netdev-linux: monitor and offload LAG slaves to TC

2018-06-26 Thread Roi Dayan
On 26/06/2018 20:43, John Hurley wrote: > A LAG slave cannot be added directly to an OvS bridge, nor can a OvS > bridge port be added to a LAG dev. However, LAG masters can be added to > OvS. > > Use TC blocks to indirectly offload slaves when their master is attached > as a linux-netdev to an

Re: [ovs-dev] [PATCH] [PATCHv2] ofp-meter: Fix ds_put_format that treats enum type as short integer

2018-06-26 Thread Ben Pfaff
On Tue, Jun 26, 2018 at 02:23:49PM -0700, Yifeng Sun wrote: > Travis job fails because of the below error and this patch solves this issue. > > lib/ofp-meter.c:340:48: error: format specifies type 'unsigned short' > but the argument has underlying type 'unsigned int' [-Werror,-Wformat] >

Re: [ovs-dev] [PATCHv5] DNS: Add basic support for asynchronous DNS resolving

2018-06-26 Thread Shashank Ram
On Tue, Jun 26, 2018 at 7:08 PM Yifeng Sun wrote: > This patch is a simple implementation for the proposal discussed in > > https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337038.html > and > https://mail.openvswitch.org/pipermail/ovs-dev/2017-October/340013.html. > > > It enables

[ovs-dev] [PATCH] [PATCHv2] ofp-meter: Fix ds_put_format that treats enum type as short integer

2018-06-26 Thread Yifeng Sun
Travis job fails because of the below error and this patch solves this issue. lib/ofp-meter.c:340:48: error: format specifies type 'unsigned short' but the argument has underlying type 'unsigned int' [-Werror,-Wformat] ds_put_format(s, "flags:0x%"PRIx16" ", flags); Signed-off-by: Yifeng

Re: [ovs-dev] [PATCH] ofp-meter: Fix ds_put_format that treats enum type as short integer

2018-06-26 Thread Ben Pfaff
Yes. I should have said %x instead of %u. On Tue, Jun 26, 2018 at 07:13:33PM -0700, Yifeng Sun wrote: > Thanks for the clarification. The document about enum type > is quite confusing and it is difficult to get it right. > > How about use %x plus a cast to unsigned? I think a hex output > is

Re: [ovs-dev] [PATCH] ofp-meter: Fix ds_put_format that treats enum type as short integer

2018-06-26 Thread Yifeng Sun
Thanks for the clarification. The document about enum type is quite confusing and it is difficult to get it right. How about use %x plus a cast to unsigned? I think a hex output is more intuitive for flags, what do you think? Best, Yifeng On Tue, Jun 26, 2018 at 6:16 PM, Ben Pfaff wrote: > On

[ovs-dev] [PATCHv5] DNS: Add basic support for asynchronous DNS resolving

2018-06-26 Thread Yifeng Sun
This patch is a simple implementation for the proposal discussed in https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337038.html and https://mail.openvswitch.org/pipermail/ovs-dev/2017-October/340013.html.

Re: [ovs-dev] 64Byte packet performance regression on 2.9 from 2.7

2018-06-26 Thread Shahaji Bhosle via dev
Hi Ilya, Just wanted to check if you found anything interesting. Or anything we can try. Thanks, Shahaji On Wed, Jun 20, 2018 at 9:01 AM, Shahaji Bhosle wrote: > Thanks Ilya, > Sorry for the confusion with the number, we used to get some different > numbers on both ports so were recording it

Re: [ovs-dev] [PATCH] ofp-meter: Fix ds_put_format that treats enum type as short integer

2018-06-26 Thread Ben Pfaff
On Tue, Jun 26, 2018 at 10:30:30AM -0700, Yifeng Sun wrote: > Travis job fails because of the below error: > > lib/ofp-meter.c:340:48: error: format specifies type 'unsigned short' > but the argument has underlying type 'unsigned int' [-Werror,-Wformat] > ds_put_format(s,

[ovs-dev] Automated robotic reply. Re: *

2018-06-26 Thread 0-day Robot
Bleep bloop. Greetings Darrell Ball, I am a robot and I have tried out your patch with message ID Thanks for your contribution. I encountered a 'make distcheck' failure. See the details below. 2613: mcast - check multicasts to trunk ports are not duplicated ok 2614: mcast - delete the port mdb

[ovs-dev] Automated robotic reply. Re: [ovs-dev, v1] conntrack: Support global drop statistics.

2018-06-26 Thread 0-day Robot
Bleep bloop. Greetings Darrell Ball, I am a robot and I have tried out your patch. Thanks for your contribution. I encountered some error that I wasn't expecting. See the details below. checkpatch: ERROR: Too many signoffs; are you missing Co-authored-by lines? Lines checked: 29, Warnings:

Re: [ovs-dev] [patch v1] conntrack: Support global drop statistics.

2018-06-26 Thread Darrell Ball
I probably will change the name of these stats to 'invalid' and add a comment to the effect that the associated packets are usually dropped. I guess it would also be good to specify that only packet sanity invalids are tracked, which should be rare. Thanks Darrell On Tue, Jun 26, 2018 at 4:16

[ovs-dev] [patch v1] conntrack: Support global drop statistics.

2018-06-26 Thread Darrell Ball
Signed-off-by: Darrell Ball --- NEWS| 2 + lib/conntrack.c | 114 +--- lib/conntrack.h | 13 ++ lib/ct-dpif.c | 24 +++ lib/ct-dpif.h | 13 ++ lib/dpctl.c | 62

[ovs-dev] [PATCH] ofp-meter: Fix ds_put_format that treats enum type as short integer

2018-06-26 Thread Yifeng Sun
Travis job fails because of the below error: lib/ofp-meter.c:340:48: error: format specifies type 'unsigned short' but the argument has underlying type 'unsigned int' [-Werror,-Wformat] ds_put_format(s, "flags:0x%"PRIx16" ", flags); This patch fixes it by treating enum type as int type.

Re: [ovs-dev] [PATCH] checkpatch: fix scissors line regex

2018-06-26 Thread Ben Pfaff
On Tue, Jun 26, 2018 at 08:58:38AM -0400, Aaron Conole wrote: > The scissors line is always three dashes on a line. The regex would > previously match on any three dashes in a row. > > This means that a patch (such as [1]) would trigger the parser state > machine to advance beyond the signed-off

Re: [ovs-dev] [PATCH] AUTHORS: Update email-id of Manohar K C

2018-06-26 Thread Ben Pfaff
On Tue, Jun 26, 2018 at 09:42:39AM +, Manohar Krishnappa Chidambaraswamy wrote: > Hi Ben, > > Could you please update my email-id? Thank you. Done. ___ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Re: [ovs-dev] [PATCH v1] dpdk: Support both shared and per port mempools.

2018-06-26 Thread Aaron Conole
Hi Ian, Ian Stokes writes: > This commit re-introduces the concept of shared mempools as the default > memory model for DPDK devices. Per port mempools are still available but > must be enabled explicitly by a user. > > OVS previously used a shared mempool model for ports with the same MTU >

Re: [ovs-dev] [PATCH v1] dpdk: Support both shared and per port mempools.

2018-06-26 Thread Kevin Traynor
On 06/26/2018 07:59 PM, Ian Stokes wrote: >> >>> -/* Tries to allocate a new mempool - or re-use an existing one where >>> - * appropriate - on requested_socket_id with a size determined by >>> - * requested_mtu and requested Rx/Tx queues. >>> - * On success - or when re-using an existing

Re: [ovs-dev] [PATCH v1] dpdk: Support both shared and per port mempools.

2018-06-26 Thread Ian Stokes
On 6/26/2018 3:33 PM, Kevin Traynor wrote: On 06/25/2018 12:56 PM, Ian Stokes wrote: This commit re-introduces the concept of shared mempools as the default memory model for DPDK devices. Per port mempools are still available but must be enabled explicitly by a user. OVS previously used a

Re: [ovs-dev] [PATCH] ovn: Add router load balancer undnat rule for IPv6

2018-06-26 Thread Mark Michelson
A note: if approved, this patch will also need to go into version 2.9 On 06/26/2018 02:42 PM, Mark Michelson wrote: When configuring a router port to have a redirect-chassis and using an IPv6 load balancer rule that specifies a TCP/UDP port, load balancing would not work as expected. This is

[ovs-dev] [PATCH] ovn: Add router load balancer undnat rule for IPv6

2018-06-26 Thread Mark Michelson
When configuring a router port to have a redirect-chassis and using an IPv6 load balancer rule that specifies a TCP/UDP port, load balancing would not work as expected. This is because a rule to un-dnat the return traffic from the load balancer destination was not installed. This is because this

Re: [ovs-dev] [PATCH 0/6] offload Linux LAG devices to the TC datapath

2018-06-26 Thread Ben Pfaff
On Mon, Jun 25, 2018 at 09:58:45AM +0200, Simon Horman wrote: > On Thu, Jun 21, 2018 at 04:31:35PM -0700, Ben Pfaff wrote: > > On Thu, Jun 21, 2018 at 06:27:19PM +0200, Simon Horman wrote: > > > On 21 June 2018 at 18:15, Ben Pfaff wrote: > > > > > > > Simon, I see that you have reviewed these

Re: [ovs-dev] IEEE 802.1Q in Openvswitch !

2018-06-26 Thread Ben Pfaff
On Tue, Jun 26, 2018 at 12:52:36PM +0530, rakesh kumar wrote: > As 3-bit field called the Priority Code > Point (*PCP*) within an Ethernet frame header when using V > LAN tagged frames as defined by *IEEE > 802.1Q*. It

[ovs-dev] [PATCH v2 6/6] netdev-linux: monitor and offload LAG slaves to TC

2018-06-26 Thread John Hurley
A LAG slave cannot be added directly to an OvS bridge, nor can a OvS bridge port be added to a LAG dev. However, LAG masters can be added to OvS. Use TC blocks to indirectly offload slaves when their master is attached as a linux-netdev to an OvS bridge. In the kernel TC datapath, blocks link

[ovs-dev] [PATCH v2 5/6] netdev-linux: assign LAG devs to tc blocks

2018-06-26 Thread John Hurley
Assign block ids to LAG masters that are added to OvS as linux-netdevs and offloaded via offload API calls. Only LAG masters are assigned to blocks. To ensure uniqueness, the block ids are determined by the netdev ifindex. Implement a get_block_id op for linux netdevs to achieve this.

[ovs-dev] [PATCH v2 4/6] netdev-linux: indicate if netdev is a LAG master

2018-06-26 Thread John Hurley
If a linux netdev is added to OvS that is a LAG master (for example, a bond or team netdev) then record this in bool form in the dev struct. Use the link info extracted from rtnetlink calls to determine this. Signed-off-by: John Hurley Reviewed-by: Dirk van der Merwe Reviewed-by: Simon Horman

[ovs-dev] [PATCH v2 3/6] rtnetlink: extend parser to include kind of master and slave

2018-06-26 Thread John Hurley
Extend the rtnetlink_parse function to look for linkinfo attributes and, in turn, store pointers to the master and slave kinds (if any) in the rtnetlink_change struct. Signed-off-by: John Hurley Reviewed-by: Simon Horman Reviewed-by: Dirk van der Merwe --- lib/rtnetlink.c | 43

[ovs-dev] [PATCH v2 2/6] netdev-provider: add class op to get block_id

2018-06-26 Thread John Hurley
Add a new class op for netdevs to get the block_id if one exists. The block_id is used in offload ops to group multiple qdiscs together. Stub calls are made to the new class op (implementation to follow in further patches). The default block_id of 0 (no block) will be used in these cases.

[ovs-dev] [PATCH v2 1/6] tc: allow offloading of block ids

2018-06-26 Thread John Hurley
Blocks, in tc classifiers, allow the grouping of multiple qdiscs with an associated block id. Whenever a filter is added to/removed from this block, the filter is added to/removed from all associated qdiscs. Extend TC offload functions to take a block id as a parameter. If the id is zero then the

[ovs-dev] [PATCH v2 0/6] offload Linux LAG devices to the TC datapath

2018-06-26 Thread John Hurley
This patchset extends OvS TC and the linux-netdev implementation to support the offloading of Linux Link Aggregation devices (LAG) and their slaves. TC blocks are used to provide this offload. Blocks, in TC, group together a series of qdiscs. If a filter is added to one of these qdiscs then it is

[ovs-dev] [PATCH V2] utilities: On RHEL 7 systems clean up after upgrade

2018-06-26 Thread Greg Rose
When upgrading from older versions of OVS that used the built-in geneve kernel module on RHEL 7 systems to newer versions that use the 'compat' vport_geneve and vport_vxlan drivers we need to clean up some cruft that might have been left over after the upgrade. Remove any genev_sys_6081 and

Re: [ovs-dev] [PATCH v1] dpdk: Support both shared and per port mempools.

2018-06-26 Thread Kevin Traynor
On 06/25/2018 12:56 PM, Ian Stokes wrote: > This commit re-introduces the concept of shared mempools as the default > memory model for DPDK devices. Per port mempools are still available but > must be enabled explicitly by a user. > > OVS previously used a shared mempool model for ports with the

Re: [ovs-dev] [PATCH v8 00/13] Support multi-segment mbufs

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:02, Lam, Tiago wrote: Hi Eelco, On 18/06/2018 12:18, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: [snip] Performance notes = In order to test for regressions in performance, tests were run on top of master 88125d6 and v8 of

Re: [ovs-dev] Automated robotic reply. Re: AUTHORS: Update email-id of Manohar K C

2018-06-26 Thread Aaron Conole
0-day Robot writes: > Bleep bloop. Greetings Manohar Krishnappa Chidambaraswamy, I am a > robot and I have tried out your patch. > Thanks for your contribution. > > I encountered some error that I wasn't expecting. See the details below. > > > checkpatch: > ERROR: No signatures found. > Lines

Re: [ovs-dev] [PATCH v8 11/13] netdev-dpdk: copy large packet to multi-seg. mbufs

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:05, Lam, Tiago wrote: > On 18/06/2018 14:15, Eelco Chaudron wrote: >> >> >> On 11 Jun 2018, at 18:21, Tiago Lam wrote: >> >>> From: Mark Kavanagh >>> >>> Currently, packets are only copied to a single segment in the function >>> dpdk_do_tx_copy(). This could be an issue

Re: [ovs-dev] [PATCH v8 10/13] dp-packet: copy data from multi-seg. DPDK mbuf

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:05, Lam, Tiago wrote: > On 18/06/2018 14:10, Eelco Chaudron wrote: >> >> >> On 11 Jun 2018, at 18:21, Tiago Lam wrote: >> >>> From: Michael Qiu >>> >>> When doing packet clone, if packet source is from DPDK driver, >>> multi-segment must be considered, and copy the

[ovs-dev] [PATCH] checkpatch: fix scissors line regex

2018-06-26 Thread Aaron Conole
The scissors line is always three dashes on a line. The regex would previously match on any three dashes in a row. This means that a patch (such as [1]) would trigger the parser state machine to advance beyond the signed-off checks. This bounds the check only to run on specific lines. 1:

Re: [ovs-dev] [PATCH v8 04/13] netdev-dpdk: Serialise non-pmds mbufs' alloc/free.

2018-06-26 Thread Ilya Maximets
On 26.06.2018 15:32, Eelco Chaudron wrote: > > > On 26 Jun 2018, at 12:02, Ilya Maximets wrote: > >> On 26.06.2018 12:19, Eelco Chaudron wrote: >>> >>> >>> On 22 Jun 2018, at 21:03, Lam, Tiago wrote: >>> On 18/06/2018 12:28, Eelco Chaudron wrote: > > > On 11 Jun 2018, at 18:21,

Re: [ovs-dev] [PATCH v8 09/13] dp-packet: Handle multi-seg mbufs in resize__().

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:04, Lam, Tiago wrote: On 18/06/2018 14:06, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: When enabled with DPDK OvS relies on mbufs allocated by mempools to receive and output data on DPDK ports. Until now, each OvS dp_packet has had only one

Re: [ovs-dev] [PATCH v8 04/13] netdev-dpdk: Serialise non-pmds mbufs' alloc/free.

2018-06-26 Thread Eelco Chaudron
On 26 Jun 2018, at 12:02, Ilya Maximets wrote: On 26.06.2018 12:19, Eelco Chaudron wrote: On 22 Jun 2018, at 21:03, Lam, Tiago wrote: On 18/06/2018 12:28, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: A new mutex, 'nonpmd_mp_mutex', has been introduced to

Re: [ovs-dev] [PATCH v8 08/13] dp-packet: Handle multi-seg mubfs in shift() func.

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:04, Lam, Tiago wrote: On 18/06/2018 12:55, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: In its current implementation dp_packet_shift() is also unaware of multi-seg mbufs (that holds data in memory non-contiguously) and assumes that data exists

[ovs-dev] Automated robotic reply. Re: *

2018-06-26 Thread 0-day Robot
Bleep bloop. Greetings Manohar Krishnappa Chidambaraswamy, I am a robot and I have tried out your patch with message ID Thanks for your contribution. I encountered a 'make distcheck' failure. See the details below. 2613: mcast - check multicasts to trunk ports are not duplicated ok 2614: mcast

[ovs-dev] Automated robotic reply. Re: AUTHORS: Update email-id of Manohar K C

2018-06-26 Thread 0-day Robot
Bleep bloop. Greetings Manohar Krishnappa Chidambaraswamy, I am a robot and I have tried out your patch. Thanks for your contribution. I encountered some error that I wasn't expecting. See the details below. checkpatch: ERROR: No signatures found. Lines checked: 38, Warnings: 0, Errors: 1

Re: [ovs-dev] [ovs-discuss] a question about ovs crash relationship with learn action

2018-06-26 Thread wangyunjian
I think the function xlate_cache_clear() needs be called after xlate_push_stats() to avoid xcache->entries use-after-free. diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index 85f5792..71b846c 100644 --- a/ofproto/ofproto-dpif-upcall.c +++

Re: [ovs-dev] [PATCH v8 07/13] dp-packet: Handle multi-seg mbufs in put_uninit().

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:04, Lam, Tiago wrote: On 18/06/2018 12:52, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: The dp_packet_put_uninit() function is, in its current implementation, operating on the data buffer of a dp_packet as if it were contiguous, which in the

Re: [ovs-dev] [PATCH v8 06/13] dp-packet: Handle multi-seg mbufs in helper funcs.

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:04, Lam, Tiago wrote: On 18/06/2018 12:50, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: Most helper functions in dp-packet assume that the data held by a dp_packet is contiguous, and perform operations such as pointer arithmetic under that

Re: [ovs-dev] Charity Support

2018-06-26 Thread M. M Fridman
-- I Mikhail Fridman. has selected you specially as one of my beneficiaries for my Charitable Donation, Just as I have declared on May 23, 2016 to give my fortune as charity. Reply as soon as possible with further directives. Best Regards, Mikhail Fridman.

Re: [ovs-dev] [PATCH v8 04/13] netdev-dpdk: Serialise non-pmds mbufs' alloc/free.

2018-06-26 Thread Ilya Maximets
On 26.06.2018 12:19, Eelco Chaudron wrote: > > > On 22 Jun 2018, at 21:03, Lam, Tiago wrote: > >> On 18/06/2018 12:28, Eelco Chaudron wrote: >>> >>> >>> On 11 Jun 2018, at 18:21, Tiago Lam wrote: >>> A new mutex, 'nonpmd_mp_mutex', has been introduced to serialise allocation and free

[ovs-dev] [PATCH] AUTHORS: Update email-id of Manohar K C

2018-06-26 Thread Manohar Krishnappa Chidambaraswamy
Hi Ben, Could you please update my email-id? Thank you. -Manu Update email-id of Manohar K C. --- Signed-off-by: Manohar K C CC: Manohar K C --- AUTHORS.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS.rst b/AUTHORS.rst index

Re: [ovs-dev] [PATCH v8 05/13] dp-packet: Fix data_len handling multi-seg mbufs.

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:04, Lam, Tiago wrote: > On 18/06/2018 12:39, Eelco Chaudron wrote: >> >> >> On 11 Jun 2018, at 18:21, Tiago Lam wrote: >> >>> When a dp_packet is from a DPDK source, and it contains multi-segment >>> mbufs, the data_len is not equal to the packet size, pkt_len. Instead,

Re: [ovs-dev] [PATCH 6/6] netdev-linux: monitor and offload LAG slaves to TC

2018-06-26 Thread John Hurley
On Tue, Jun 26, 2018 at 6:35 AM, Roi Dayan wrote: > > > On 21/06/2018 16:36, John Hurley wrote: >> A LAG slave cannot be added directly to an OvS bridge, nor can a OvS >> bridge port be added to a LAG dev. However, LAG masters can be added to >> OvS. >> >> Use TC blocks to indirectly offload

Re: [ovs-dev] [PATCH v8 04/13] netdev-dpdk: Serialise non-pmds mbufs' alloc/free.

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:03, Lam, Tiago wrote: On 18/06/2018 12:28, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: A new mutex, 'nonpmd_mp_mutex', has been introduced to serialise allocation and free operations by non-pmd threads on a given mempool. Can you explain

Re: [ovs-dev] [PATCH v8 02/13] dp-packet: Init specific mbuf fields.

2018-06-26 Thread Eelco Chaudron
On 22 Jun 2018, at 21:03, Lam, Tiago wrote: On 18/06/2018 12:23, Eelco Chaudron wrote: On 11 Jun 2018, at 18:21, Tiago Lam wrote: From: Mark Kavanagh dp_packets are created using xmalloc(); in the case of OvS-DPDK, it's possible the the resultant mbuf portion of the dp_packet

Re: [ovs-dev] [PATCH v3] ovn.at: Add stateful test for ACL on port groups.

2018-06-26 Thread Jakub Sitnicki
On Mon, 25 Jun 2018 10:03:02 -0700 Han Zhou wrote: > A bug was reported on the feature of applying ACLs on port groups [1]. > This bug was not detected by the original test case, because it didn't > test the return traffic and so didn't ensure the stateful feature is > working. The fix [2]

Re: [ovs-dev] [PATCH 0/5] mac-learning: Add additional counters for troubleshooting aid

2018-06-26 Thread Jakub Sitnicki
On Mon, 25 Jun 2018 12:57:08 +0200 Eelco Chaudron wrote: > This series add some additional counters that make FDB debugging easier. > The following counters now exists on a per mac_learning instance, and > the last two have also been added as coverage counters. > > learned: Total number of

[ovs-dev] IEEE 802.1Q in Openvswitch !

2018-06-26 Thread rakesh kumar
Hello Team, As 3-bit field called the Priority Code Point (*PCP*) within an Ethernet frame header when using V LAN tagged frames as defined by *IEEE 802.1Q*. It specifies a priority value of between *0 and 7* inclusive that

[ovs-dev] Queue's in OVS - Please give your views !

2018-06-26 Thread rakesh kumar
Dear Team, Which file should i investigate to get the details of Queue implementation in Kernel module. As there are are 8 queues ( 0 to 7) at port where packets are forwarded normally if using IEEE 802.1Q protocols. Regards Rakesh Kumar ___ dev