Re: [ewg] High Speed Packet Injector]
When injecting Ethernet frames in network, we don't need a connection to be established between sender and receiver. But I think to use RAW_ETH_QP, we need to make a queue pairing between a sender and a receiver, is this true or I am wrong ? The remote qpn is only required for IB, not for Ethernet. The Ethernet frames sent using RAW_ETH_QP could be received by any Ethernet device. Regards, Mirek -Original Message- From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of majdi.bens...@amansystem.com Sent: Friday, February 24, 2012 5:15 PM To: ewg@lists.openfabrics.org Subject: Re: [ewg] High Speed Packet Injector] There is nobody to help us When injecting Ethernet frames in network, we don't need a connection to be established between sender and receiver. But I think to use RAW_ETH_QP, we need to make a queue pairing between a sender and a receiver, is this true or I am wrong ? You can use RAW_ETH_QP available by OFED user space verbs Tziporet -Original Message- From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of majdi.bens...@amansystem.com Sent: Thursday, February 16, 2012 12:28 PM To: ewg@lists.openfabrics.org Subject: [ewg] High Speed Packet Injector Dear Sears, I am working on the creation of a high speed packet injector based on tcpreplay, using Mellanox 10GE Nic and bypassing Linux kernel. All documents read about ofed stack talk about connected connections. But I want a method which allow me to write Ethernet frames directly to network wire, and also collect packets in a high speed network without using OS kernel. Basically we want to reach 10GE both in sending and receiving. Do you have any ideas how this can be done? or Do you have some hints which can help? Thanks in advance. Best Regards. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] iWARP WAN test problem
Tan, Do you have a possibility to check if your configuration works in back-to-back configuration( without IP router) in the same IP subnet? Regards, Mirek From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Tanin Sent: Thursday, March 03, 2011 2:46 PM To: rich...@informatix-sol.com Cc: OpenFabrics EWG Subject: Re: [ewg] iWARP WAN test problem Thanks, Richard. So, is that also apply to iWARP? If there is an IP router in between the path, iWARP would not work, right? On Thu, Mar 3, 2011 at 4:21 AM, rich...@informatix-sol.commailto:rich...@informatix-sol.com rich...@informatix-sol.commailto:rich...@informatix-sol.com wrote: RDMA only works over layer2 Ethernet. If you have an IP router in path it won't work. For long haul infiniband we use buffer devices, such as obsidian longbows, to sustain throughput over the long haul. Richard -- Best regards, --- Li, Tan PhD Candidate Research Assistant, Electrical Engineering, Stony Brook University, NY Personal Web Site: https://sites.google.com/site/homepagelitan/Home Email: fanqie...@gmail.commailto:fanqie...@gmail.com ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] FW: [PATCH 0/5] RDMA/core: a set of various fixes for RAW QP implementation in nes driver
Vlad, I can't see may patches to nes introduced to OFED. Do you see any problems with getting them? Regards, Mirek -Original Message- From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Mirek Walukiewicz Sent: Thursday, December 09, 2010 5:01 PM To: v...@dev.mellanox.co.il Cc: e...@openfabrics.org Subject: [ewg] [PATCH 0/5] RDMA/core: a set of various fixes for RAW QP implementation in nes driver This patch series provides a set of patches correcting driver misbehavior when RAW QP is enabled. It includes fixes for: - packets with VLAN transfer over RAW QP - transition of RAW QP to ERR state - memory corruption during post recv buffers to RAW QP - checking resource limits for multicast groups attached to RAW QP Signed-off-by: Mirek Walukiewicz miroslaw.walukiew...@intel.com ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH] iWARP Multicast Acceleration description - nes_release_notes.txt update
docs/nes: Add description of iWARP Multicast Acceleration The document describes a usage model of the iWARP Multicast Acceleration Signed-off-by: Mirek Walukiewicz miroslaw.walukiew...@intel.com --- diff --git a/nes_release_notes.txt b/nes_release_notes.txt index 6386c54..b23abf3 100644 --- a/nes_release_notes.txt +++ b/nes_release_notes.txt @@ -269,5 +269,66 @@ Example mpirun command line: -mca btl_openib_flags 2 /usr/mpi/gcc/openmpi-1.4.1/tests/IMB-3.2/IMB-MPI1 +=== +iWARP Multicast Acceleration (IMA) +=== + +iWARP multicast acceleration bases on new defined QP +type IBV_QPT_RAW_ETH. Adding a IBV_QPT_RAW_ETH enables +a L2 traffic kernel bypass using user-space verbs API. + +The L2 RAW_ETH acceleration assumes that user application +transmits and receives a whole L2 frame including MAC/IP/UDP/TCP headers. + +ETH RAW QP usage: +first the application creates IBV_QPT_RAW_ETH QP with associated CQ,PD, +completion channels as it is performed for RDMA connection. + +Next step is enabling L2 MAC address RX filters for directing received +multicasts to the RAW_ETH QPs using ibv_attach_multicast() verb. + +From this point the application is ready to receive and transmit +multicast traffic. + +In multicast acceleration the user application passes to ibv_post_send() +whole IGMP frame including MAC header, IP header, UDP header and UDP payload. +It is a user responsibility to make IP fragmentaion when required payload +is larger than MTU. Every fragment is a separate L2 frame to transmit. +The ibv_poll_cq() provides an information about the status of transmit buffer. + +On receive path when ibv_poll_cq() provides an information +about received L2 packet, the Rx buffer (previously posted by ibv_post_recv() + contains a whole L2 frame including MAC header, IP header and UDP header. +It is a user application responsibility to check if received packet is +a valid UDP frame so the fragments must be checked and +checksums must be computed. + +IMA API description (NE020 specific) : +User application must create separate CQs for RX and TX path. +Only single sge on tranmit is supported. +User application must post at least 65 rx buffers to keep RX path working. + +IMA device: +IMA requires creation of the /dev/infiniband/nes_ud_sksq device to get + access to optimized IMA transmit path. The best method for creation +of that device is manual addition following line to +/etc/udev/rules.d/90-ib.rules file +after OFED distribution installation and rebooting machine. + +KERNEL==nes_ud_sksq, NAME=infiniband/%k, MODE=0644 + +As a result the 90-ib.rules should look like: + +KERNEL==umad*, NAME=infiniband/%k +KERNEL==issm*, NAME=infiniband/%k +KERNEL==ucm*, NAME=infiniband/%k, MODE=0666 +KERNEL==uverbs*, NAME=infiniband/%k, MODE=0666 +KERNEL==ucma, NAME=infiniband/%k, MODE=0666 +KERNEL==rdma_cm, NAME=infiniband/%k, MODE=0666 +KERNEL==nes_ud_sksq, NAME=infiniband/%k, MODE=0644 + +Keep in mind that setting an other that 644 mode of nes_ud_sksq device +can cause serious serious security issues, so it is not recommended to +change this mode for applications. NetEffect is a trademark of Intel Corporation in the U.S. and other countries. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v6] IB CORE: RAW ETH support
Hello Aleksey, This patch is not working for iWARP. There is no change from ETY to ETH for ibv_attach_mcast/ibv_detach_mcast() for RDMA_TRANSPORT_IWARP Mirek -Original Message- From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Aleksey Senin Sent: Monday, June 14, 2010 2:39 PM To: v...@dev.mellanox.co.il; e...@dev.mellanox.co.il; e...@openfabrics.org Cc: mo...@voltaire.com; e...@mellanox.co.il Subject: [ewg] [PATCH v6] IB CORE: RAW ETH support This patch add RAW ETH support to IB core. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- .../fixes/core_0560_raw_eth_common.patch | 66 1 files changed, 66 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/core_0560_raw_eth_common.patch diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..52d7be7 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,66 @@ +From b76993213461212cfdb40817b454513a91ee4e6e Mon Sep 17 00:00:00 2001 +From: Aleksey Senin aleks...@voltaire.com +Date: Mon, 14 Jun 2010 15:20:40 +0300 +Subject: [PATCH 1/2] Verbs RAW ETH support + +This patch add RAW ETH support in IB core. + +Signed-off-by: Aleksey Senin aleks...@voltaire.com +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp-device-node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) ++ if (qp-qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid-global.subnet_prefix cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid-raw[0] != 0xff || qp-qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + -- 1.6.5.2 ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v6] IB CORE: RAW ETH support
Now, it is OK for me. Thank you, Mirek -Original Message- From: Aleksey Senin [mailto:aleks...@voltaire.com] Sent: Tuesday, June 15, 2010 3:12 PM To: Walukiewicz, Miroslaw; v...@dev.mellanox.co.il Cc: e...@dev.mellanox.co.il; e...@openfabrics.org; mo...@voltaire.com Subject: Re: [ewg] [PATCH v6] IB CORE: RAW ETH support Hi, Miroslaw. Please review and give OK to Vlad to apply this fix. Fix QP type when using iWARP transport. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- .../fixes/core_0560_raw_eth_common.patch | 33 +-- 1 files changed, 22 insertions(+), 11 deletions(-) diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch index 52d7be7..3083f47 100644 --- a/kernel_patches/fixes/core_0560_raw_eth_common.patch +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -1,18 +1,19 @@ -From b76993213461212cfdb40817b454513a91ee4e6e Mon Sep 17 00:00:00 2001 +From 4716cc5ef1d4609ad976a502a14887cac0119f33 Mon Sep 17 00:00:00 2001 From: Aleksey Senin aleks...@voltaire.com -Date: Mon, 14 Jun 2010 15:20:40 +0300 -Subject: [PATCH 1/2] Verbs RAW ETH support +Date: Tue, 15 Jun 2010 16:00:49 +0300 +Subject: [PATCH] Verbs RAW_ETH support -This patch add RAW ETH support in IB core. +Add new RAW_ETH QP type in order to build RAW Ethernet packets +over iWARP and RoCEE. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- - drivers/infiniband/core/verbs.c | 13 +++-- + drivers/infiniband/core/verbs.c | 17 + include/rdma/ib_verbs.h |1 + - 2 files changed, 12 insertions(+), 2 deletions(-) + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c -index 881850e..bb4dcd5 100644 +index d24b240..c86a665 100644 --- a/drivers/infiniband/core/verbs.c +++ b/drivers/infiniband/core/verbs.c @@ -382,6 +382,7 @@ static const struct { @@ -23,7 +24,7 @@ index 881850e..bb4dcd5 100644 [IB_QPT_UC] = (IB_QP_PKEY_INDEX | IB_QP_PORT | IB_QP_ACCESS_FLAGS), -@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) +@@ -1005,11 +1006,15 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) switch (rdma_node_get_transport(qp-device-node_type)) { case RDMA_TRANSPORT_IB: @@ -36,7 +37,12 @@ index 881850e..bb4dcd5 100644 return -EINVAL; break; case RDMA_TRANSPORT_IWARP: -@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) +- if (qp-qp_type != IB_QPT_RAW_ETY) ++ if (qp-qp_type != IB_QPT_RAW_ETH) + return -EINVAL; + break; + } +@@ -1024,11 +1029,15 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) switch (rdma_node_get_transport(qp-device-node_type)) { case RDMA_TRANSPORT_IB: @@ -49,8 +55,13 @@ index 881850e..bb4dcd5 100644 return -EINVAL; break; case RDMA_TRANSPORT_IWARP: +- if (qp-qp_type != IB_QPT_RAW_ETY) ++ if (qp-qp_type != IB_QPT_RAW_ETH) + return -EINVAL; + break; + } diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h -index 3a5a40f..2162253 100644 +index 99f6859..3330820 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -571,6 +571,7 @@ enum ib_qp_type { @@ -62,5 +73,5 @@ index 3a5a40f..2162253 100644 }; -- -1.6.5.2 +1.6.4.2 -- 1.6.4.2 ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] RAW_ETH support [PATCH 1/2]
I accept that patch. Is there any need to send this patch again by me to be applied to OFED? Mirek -Original Message- From: Moni Shoua [mailto:mo...@voltaire.com] Sent: Monday, June 14, 2010 4:14 PM To: Vlad Cc: Aleksey Senin; ewg@lists.openfabrics.org; Walukiewicz, Miroslaw Subject: Re: [ewg] RAW_ETH support [PATCH 1/2] Hi Vlad Please apply this patch. Now, when RAW patches that you accepted today are applied, RAW ETH QP support is broken for NE driver unless this patch is applied. thanks Aleksey Senin wrote: This patch will fix existing NES code to support RAW_ETH instead of RAW_ETY type. Signed-off-by: Aleksey Senin aleks...@voltaire.com --- kernel_patches/fixes/nes_0033_ima.patch | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel_patches/fixes/nes_0033_ima.patch b/kernel_patches/fixes/nes_0033_ima.patch index ed21edd..304fe73 100755 --- a/kernel_patches/fixes/nes_0033_ima.patch +++ b/kernel_patches/fixes/nes_0033_ima.patch @@ -1,8 +1,8 @@ RDMA/nes: add support of iWARP multicast acceleration over - IB_QPT_RAW_ETY QP type + IB_QPT_RAW_ETH QP type This patch implements iWarp multicast acceleration (IMA) -over IB_QPT_RAW_ETY QP type in nes driver. +over IB_QPT_RAW_ETH QP type in nes driver. Application creates a raw eth QP (IBV_QPT_RAW_ETH in user-space) and manages the multicast via ibv_attach_mcast and ibv_detach_mcast calls. @@ -2301,7 +2301,7 @@ index 098b56f..1801a54 100644 -nes_debug(NES_DBG_QP, Invalid QP type: %d\n, init_attr-qp_type); -return ERR_PTR(-EINVAL); + -+case IB_QPT_RAW_ETY: ++case IB_QPT_RAW_ETH: +if (!ibpd-uobject) +return ERR_PTR(-EINVAL); + @@ -2428,7 +2428,7 @@ index 098b56f..1801a54 100644 atomic_inc(sw_qps_destroyed); nesqp-destroyed = 1; -+if (nesqp-ibqp.qp_type == IB_QPT_RAW_ETY) { ++if (nesqp-ibqp.qp_type == IB_QPT_RAW_ETH) { +/* check the QP refernece count */ +if (atomic_read(nesqp-refcount) == 0) +BUG(); @@ -2558,7 +2558,7 @@ index 098b56f..1801a54 100644 nesqp-hwqp.qp_id, attr-qp_state, nesqp-ibqp_state, nesqp-iwarp_state, atomic_read(nesqp-refcount)); -+if (ibqp-qp_type == IB_QPT_RAW_ETY) ++if (ibqp-qp_type == IB_QPT_RAW_ETH) +return 0; + spin_lock_irqsave(nesqp-lock, qplockflags); ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] RAW_ETH support [PATCH 0/2]
Ok, I accept this patch series. Regards, Mirek -Original Message- From: Aleksey Senin [mailto:aleks...@voltaire.com] Sent: Tuesday, June 08, 2010 3:50 PM To: ewg@lists.openfabrics.org Cc: Walukiewicz, Miroslaw Subject: RAW_ETH support [PATCH 0/2] Those patches add new RAW_ETH QP type to the kernel in order to support creation of RAW Ethernet packets for iWARP and RDMAOE protocols. The reason for new type is that RAW_ETY QP already used by Mellanox drivers for another purpose. Another reason, that there is RAW_ETH QP type already present in userspace, but it mapped to RAW_ETY type in the kernel and cause to confusion when dealing with code. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] problem with compilation of the librdmacm on kernel 2.6.9-89 (RHEL4.8)
Hello, I see a compilation problem on my RHEL4.8 gcc -DHAVE_CONFIG_H -I. -I. -I. -I./include -g -Wall -D_GNU_SOURCE -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -MT src_librdmacm_la-addrinfo.lo -MD -MP -MF . deps/src_librdmacm_la-addrinfo.Tpo -c src/addrinfo.c -fPIC -DPIC -o .libs/src_l ibrdmacm_la-addrinfo.o In file included from src/cma.c:59: ./include/infiniband/ib.h:49: error: syntax error before __be16 ./include/infiniband/ib.h:49: warning: no semicolon at end of struct or union ./include/infiniband/ib.h:49: warning: no semicolon at end of struct or union ./include/infiniband/ib.h:50: warning: type defaults to `int' in declaration of `uib_addr32' ./include/infiniband/ib.h:50: warning: data definition has no type or storage cl ass ./include/infiniband/ib.h:51: error: syntax error before uib_addr64 ./include/infiniband/ib.h:51: warning: type defaults to `int' in declaration of `uib_addr64' ./include/infiniband/ib.h:51: warning: data definition has no type or storage cl ass ./include/infiniband/ib.h:52: error: syntax error before '}' token ./include/infiniband/ib.h:52: warning: type defaults to `int' in declaration of `ib_u' ./include/infiniband/ib.h:52: warning: data definition has no type or storage cl ass ./include/infiniband/ib.h:60: error: syntax error before '}' token ./include/infiniband/ib.h: In function `ib_addr_any': ./include/infiniband/ib.h:64: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:64: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h: In function `ib_addr_loopback': ./include/infiniband/ib.h:69: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:69: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:70: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:70: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h: At top level: ./include/infiniband/ib.h:74: error: syntax error before __be32 ./include/infiniband/ib.h: In function `ib_addr_set': ./include/infiniband/ib.h:76: error: `addr' undeclared (first use in this functi on) ./include/infiniband/ib.h:76: error: (Each undeclared identifier is reported onl y once ./include/infiniband/ib.h:76: error: for each function it appears in.) ./include/infiniband/ib.h:76: error: `w1' undeclared (first use in this function ) ./include/infiniband/ib.h:77: error: `w2' undeclared (first use in this function ) ./include/infiniband/ib.h:78: error: `w3' undeclared (first use in this function Could anyone help me? Regards, Mirek ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] problem with compilation of the librdmacm on kernel 2.6.9-89 (RHEL4.8)
II forgot to add that I used OFED-1.5.2-20100523-0600 daily build Regards, Mirek From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Walukiewicz, Miroslaw Sent: Tuesday, May 25, 2010 6:08 PM To: e...@openfabrics.org Subject: [ewg] problem with compilation of the librdmacm on kernel 2.6.9-89 (RHEL4.8) Hello, I see a compilation problem on my RHEL4.8 gcc -DHAVE_CONFIG_H -I. -I. -I. -I./include -g -Wall -D_GNU_SOURCE -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -MT src_librdmacm_la-addrinfo.lo -MD -MP -MF . deps/src_librdmacm_la-addrinfo.Tpo -c src/addrinfo.c -fPIC -DPIC -o .libs/src_l ibrdmacm_la-addrinfo.o In file included from src/cma.c:59: ./include/infiniband/ib.h:49: error: syntax error before __be16 ./include/infiniband/ib.h:49: warning: no semicolon at end of struct or union ./include/infiniband/ib.h:49: warning: no semicolon at end of struct or union ./include/infiniband/ib.h:50: warning: type defaults to `int' in declaration of `uib_addr32' ./include/infiniband/ib.h:50: warning: data definition has no type or storage cl ass ./include/infiniband/ib.h:51: error: syntax error before uib_addr64 ./include/infiniband/ib.h:51: warning: type defaults to `int' in declaration of `uib_addr64' ./include/infiniband/ib.h:51: warning: data definition has no type or storage cl ass ./include/infiniband/ib.h:52: error: syntax error before '}' token ./include/infiniband/ib.h:52: warning: type defaults to `int' in declaration of `ib_u' ./include/infiniband/ib.h:52: warning: data definition has no type or storage cl ass ./include/infiniband/ib.h:60: error: syntax error before '}' token ./include/infiniband/ib.h: In function `ib_addr_any': ./include/infiniband/ib.h:64: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:64: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h: In function `ib_addr_loopback': ./include/infiniband/ib.h:69: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:69: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:70: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h:70: error: dereferencing pointer to incomplete type ./include/infiniband/ib.h: At top level: ./include/infiniband/ib.h:74: error: syntax error before __be32 ./include/infiniband/ib.h: In function `ib_addr_set': ./include/infiniband/ib.h:76: error: `addr' undeclared (first use in this functi on) ./include/infiniband/ib.h:76: error: (Each undeclared identifier is reported onl y once ./include/infiniband/ib.h:76: error: for each function it appears in.) ./include/infiniband/ib.h:76: error: `w1' undeclared (first use in this function ) ./include/infiniband/ib.h:77: error: `w2' undeclared (first use in this function ) ./include/infiniband/ib.h:78: error: `w3' undeclared (first use in this function Could anyone help me? Regards, Mirek ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH] libibverbs: add raw ethernet QP type IBV_QPT_RAW_ETH=7
BTW - does this patch add-on to the verbs API? I hope it does not break the ABI.The only change to the API is The only change for API is a new IBV_QPT_RAW_ETH. There is no changes in structures. Regards, Mirek -Original Message- From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Tziporet Koren Sent: Wednesday, May 05, 2010 3:22 PM To: Roland Dreier Cc: Walukiewicz, Miroslaw; e...@openfabrics.org Subject: Re: [ewg] [PATCH] libibverbs: add raw ethernet QP type IBV_QPT_RAW_ETH=7 On 5/5/2010 12:55 AM, Roland Dreier wrote: We want to add that patch and iWARP multicast acceleration patches to OFED 1.5.2 content. I have nothing to do with OFED development. We first need to see how is this patch get into the Linux kernel before we take it to OFED BTW - does this patch add-on to the verbs API? I hope it does not break the ABI. Tziporet ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH] libibverbs: add raw ethernet QP type IBV_QPT_RAW_ETH=7
Adding a IBV_QPT_RAW_ETH enables a L2 traffic kernel bypass using user-space verbs API. The L2 RAW_ETH acceleration assumes that user application transmits and receives a whole L2 frame including MAC/IP/UDP/TCP headers. Depending on frame content and available HW filters in HW any L2 traffic type could be accelerated. The sample code for IBV_QPT_RAW_ETH is provided by NES as implementation of IPv4 multicast acceleration. In this sample, first the application creates IBV_QPT_RAW_ETH QP with associated CQ,PD, completion channels as it is performed for RDMA connection. Next step is enabling L2 MAC address RX filters for directing received multicasts to the RAW_ETH QPs using ibv_attach_multicast() verb. From this point the application is ready to receive and transmit the L2 traffic. In multicast acceleration the user application passes to ibv_post_send() the whole IGMP frame including MAC header, IP header, UDP header and UDP payload. It is a user responsibility to make IP fragmentaion when required payload to send is bigger than MTU. Every fragment is a separate L2 frame to transmit. The ibv_poll_cq() provides an information about the status of transmit buffer. On receive path when ibv_poll_cq() provides an information about received L2 packet, the Rx buffer (previously posted by ibv_post_recv() ) contains a whole L2 frame including MAC header, IP header and UDP header. It is a user application responsibility to check if received packet is a valid UDP frame so the fragments must be checked and checksums must be computed. For me the additional patches in kernel are not necessary because the functional meaning of the IB_QPT_RAW_ETH for IWARP/Ethernet cards and IB_QPT_RAW_ETY for IB (that is not used as I know) are very similar and there is no need to multiply QP types that have the same meaning. Similarly there is no separate definitions for RC_QP for iWARP and IB, because their meaning is similar. Regards, Mirek Walukiewicz -Original Message- From: Aleksey Senin [mailto:aleks...@voltaire.com] Sent: Sunday, May 02, 2010 3:15 PM To: Walukiewicz, Miroslaw Cc: rdre...@cisco.com; e...@openfabrics.org; Moni Shoua; Yiftah Shahar Subject: Re: [ewg] [PATCH] libibverbs: add raw ethernet QP type IBV_QPT_RAW_ETH=7 Could you add additional details about its usage in the feature to community? Why and how can it be used? I understand, that using this QP type, user will have full control on the packet content and it may be required when you are missing some features now, like UD, and want implement them by yourself. Another thing. Is seems that you have to patch kernel too in order implement such support. Something like this. enum ib_qp_type { /* * IB_QPT_SMI and IB_QPT_GSI have to be the first two entries * here (and in that order) since the MAD layer uses them as * indices into a 2-entry table. */ IB_QPT_SMI, IB_QPT_GSI, IB_QPT_RC, IB_QPT_UC, IB_QPT_UD, IB_QPT_XRC, IB_QPT_RAW_IPV6, IB_QPT_RAW_ETH, IB_QPT_RAW_ETY }; And its, probably, a reason, why IBV_QPT_RAW_ETH should be equal to 7. On Fri, 2010-04-30 at 18:46 +0200, Mirek Walukiewicz wrote: The patch enables usage of L2 raw ethernet QP type for user-space applications. Miroslaw Walukiewicz Signed-off-by: Mirek Walukiewicz miroslaw.walukiew...@intel.com --- include/infiniband/verbs.h |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/include/infiniband/verbs.h b/include/infiniband/verbs.h index 0f1cb2e..55cea89 100644 --- a/include/infiniband/verbs.h +++ b/include/infiniband/verbs.h @@ -390,7 +390,8 @@ struct ibv_srq_init_attr { enum ibv_qp_type { IBV_QPT_RC = 2, IBV_QPT_UC, - IBV_QPT_UD + IBV_QPT_UD, + IBV_QPT_RAW_ETH = 7 }; struct ibv_qp_cap { ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH] libibverbs: add raw ethernet QP type IBV_QPT_RAW_ETH=7
Roland, Tziporet We want to add that patch and iWARP multicast acceleration patches to OFED 1.5.2 content. Is it possible to add making the decision regarding these patches to nearest EWG/OFED meeting agenda? Regards, Mirek -Original Message- From: ewg-boun...@lists.openfabrics.org [mailto:ewg-boun...@lists.openfabrics.org] On Behalf Of Mirek Walukiewicz Sent: Friday, April 30, 2010 6:47 PM To: rdre...@cisco.com Cc: e...@openfabrics.org Subject: [ewg] [PATCH] libibverbs: add raw ethernet QP type IBV_QPT_RAW_ETH=7 The patch enables usage of L2 raw ethernet QP type for user-space applications. Miroslaw Walukiewicz Signed-off-by: Mirek Walukiewicz miroslaw.walukiew...@intel.com --- include/infiniband/verbs.h |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/include/infiniband/verbs.h b/include/infiniband/verbs.h index 0f1cb2e..55cea89 100644 --- a/include/infiniband/verbs.h +++ b/include/infiniband/verbs.h @@ -390,7 +390,8 @@ struct ibv_srq_init_attr { enum ibv_qp_type { IBV_QPT_RC = 2, IBV_QPT_UC, - IBV_QPT_UD + IBV_QPT_UD, + IBV_QPT_RAW_ETH = 7 }; struct ibv_qp_cap { ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg