Giter Club home page Giter Club logo

netbricks's Issues

missing field `dpdk_args` in initializer of `config::NetbricksConfiguration`

I am following the commands given in the readme file and I am getting the following error when I run

./build.sh build

_### error[E0063]: missing field dpdk_args in initializer of config::NetbricksConfiguration
_--> src/config/config_reader.rs:290:8
|
290 | Ok(NetbricksConfiguration {
| ^^^^^^^^^^^^^^^^^^^^^^ missing dpdk_args

error: aborting due to previous error

error: Could not compile e2d2.

To learn more, run the command again with --verbose.__

Am I missing something? Please help me in this regards.

Thanks.

question to packet.rs

Hi,
first of all congratulations for this excellent work! I really like your approach of applying functions to packets vs. the traditional transporting packets to functions approach. I think this is absolutely the right way to go.

Just a question to your code in "packet.rs" line 312. In my view this statement "let header=self.payload();" hides the "header"-argument of the push_header function. I commented that line out and the code works fine for me. Or what is the intention of this line of code?

Error pops up while compiling etcdv3-rs

Hi All,

I try to build NetBricks on my machine, but the compiling error of etcdv3-rs keeps occurring.
Could you please provide me any hint to solve the problem. Thanks in advance.
Below is the error info:

SCTP library found
~/dev/NetBricks/framework ~/dev/NetBricks
Compiling etcdv3-rs v0.1.0 (https://github.com/apanda/etcdv3-rs#b99b7919)
error[E0599]: no method named and_then found for type hyper::client::FutureResponse in the current scope
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:34:51
|
34 | Box::new(self.client.request(put_request).and_then(
| ^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a use for it:
candidate #1: use futures::future::Future;

error[E0277]: the trait bound futures::Future<Error=hyper::Error, Item=bool>: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:34:9
|
34 | Box::new(self.client.request(put_request).and_then(
| ^^^^^^^^ futures::Future<Error=hyper::Error, Item=bool> does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for futures::Future<Error=hyper::Error, Item=bool>
= note: required by <std::boxed::Box<T>>::new

error[E0599]: no method named and_then found for type hyper::client::FutureResponse in the current scope
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:55:18
|
55 | .and_then(|res| res.body().concat2())
| ^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a use for it:
candidate #1: use futures::future::Future;

error[E0277]: the trait bound [u8]: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:56:28
|
56 | .and_then(|body| {
| ^^^^ [u8] does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for [u8]
= note: all local variables must have a statically known size

error[E0277]: the trait bound futures::Future<Error=hyper::Error, Item=std::option::Option<std::string::String>>: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:52:9
|
52 | Box::new(
| ^^^^^^^^ futures::Future<Error=hyper::Error, Item=std::option::Option<std::string::String>> does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for futures::Future<Error=hyper::Error, Item=std::option::Option<std::string::String>>
= note: required by <std::boxed::Box<T>>::new

error[E0599]: no method named and_then found for type hyper::client::FutureResponse in the current scope
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:82:18
|
82 | .and_then(|res| res.body().concat2())
| ^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a use for it:
candidate #1: use futures::future::Future;

error[E0277]: the trait bound [u8]: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:83:28
|
83 | .and_then(|body| {
| ^^^^ [u8] does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for [u8]
= note: all local variables must have a statically known size

error[E0277]: the trait bound futures::Future<Error=hyper::Error, Item=std::vec::Vec<(std::string::String, std::string::String)>>: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:79:9
|
79 | Box::new(
| ^^^^^^^^ futures::Future<Error=hyper::Error, Item=std::vec::Vec<(std::string::String, std::string::String)>> does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for futures::Future<Error=hyper::Error, Item=std::vec::Vec<(std::string::String, std::string::String)>>
= note: required by <std::boxed::Box<T>>::new

error[E0599]: no method named and_then found for type hyper::client::FutureResponse in the current scope
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:118:18
|
118 | .and_then(|res| res.body().concat2())
| ^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a use for it:
candidate #1: use futures::future::Future;

error[E0277]: the trait bound [u8]: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:119:28
|
119 | .and_then(|body| {
| ^^^^ [u8] does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for [u8]
= note: all local variables must have a statically known size

error[E0277]: the trait bound futures::Future<Error=hyper::Error, Item=etcd_proto::RangeResponse>: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:115:9
|
115 | Box::new(
| ^^^^^^^^ futures::Future<Error=hyper::Error, Item=etcd_proto::RangeResponse> does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for futures::Future<Error=hyper::Error, Item=etcd_proto::RangeResponse>
= note: required by <std::boxed::Box<T>>::new

error[E0599]: no method named and_then found for type hyper::client::FutureResponse in the current scope
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:145:53
|
145 | Box::new(self.client.request(watch_request).and_then(|res| {
| ^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a use for it:
candidate #1: use futures::future::Future;

error[E0277]: the trait bound [u8]: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:146:41
|
146 | Ok(Box::new(res.body().map(|chunk| {
| ^^^^^ [u8] does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for [u8]
= note: all local variables must have a statically known size

error[E0277]: the trait bound futures::Future<Error=hyper::Error, Item=std::boxed::Box<futures::Stream<Item=etcd_proto::WatchResponse, Error=hyper::Error>>>: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:145:9
|
145 | Box::new(self.client.request(watch_request).and_then(|res| {
| ^^^^^^^^ futures::Future<Error=hyper::Error, Item=std::boxed::Box<futures::Stream<Item=etcd_proto::WatchResponse, Error=hyper::Error>>> does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for futures::Future<Error=hyper::Error, Item=std::boxed::Box<futures::Stream<Item=etcd_proto::WatchResponse, Error=hyper::Error>>>
= note: required by <std::boxed::Box<T>>::new

error[E0599]: no method named and_then found for type hyper::client::FutureResponse in the current scope
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:174:53
|
174 | Box::new(self.client.request(watch_request).and_then(|res| {
| ^^^^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a use for it:
candidate #1: use futures::future::Future;

error[E0277]: the trait bound [u8]: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:175:41
|
175 | Ok(Box::new(res.body().map(|chunk| {
| ^^^^^ [u8] does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for [u8]
= note: all local variables must have a statically known size

error[E0277]: the trait bound futures::Future<Error=hyper::Error, Item=std::boxed::Box<futures::Stream<Item=etcd_proto::WatchResponse, Error=hyper::Error>>>: std::marker::Sized is not satisfied
--> /home/wenhao/.cargo/git/checkouts/etcdv3-rs-36c166c6e775c7cf/b99b791/src/etcd_actions.rs:174:9
|
174 | Box::new(self.client.request(watch_request).and_then(|res| {
| ^^^^^^^^ futures::Future<Error=hyper::Error, Item=std::boxed::Box<futures::Stream<Item=etcd_proto::WatchResponse, Error=hyper::Error>>> does not have a constant size known at compile-time
|
= help: the trait std::marker::Sized is not implemented for futures::Future<Error=hyper::Error, Item=std::boxed::Box<futures::Stream<Item=etcd_proto::WatchResponse, Error=hyper::Error>>>
= note: required by <std::boxed::Box<T>>::new

error: aborting due to 17 previous errors

Some errors occurred: E0277, E0599.
For more information about an error, try rustc --explain E0277.
error: Could not compile etcdv3-rs.

Support for OSX

Hello~
Do you have plan to support OSX platform? It causes error on build.sh.
(I changed nproc to sysctl -n hw.physicalcpu, but it still not work)

UDF and Packetize

Hi all,

Just a question. I'm trying to understand the inner working of the window stream UDF combined with the packetize abstraction to modify flows on the fly, as suggested in the paper. Is there an example of this? How will the re-packetization will be made regarding, eg. SEQ and ACKs? Will it re-do a 3-way handshake etc?
One example would be rewriting URLs in HTTP flows to use different CDNs.

Thanks for the light,
Tom

discrepancy between struct MBuf (mbuf.rs) and rte_mbuf(rte_mbuf.h) with DPDK 17.08

Hi, I just recognized that the Netbricks master branch uses:
pub struct MBuf {
buf_addr: *mut u8,
phys_addr: usize,
data_off: u16,
refcnt: u16,
nb_segs: u8,
port: u8,
...
}
However in the corresponding 17.08 DPDK header file rte_mbuf.h (see e.g.
http://dpdk.org/browse/dpdk/tree/lib/librte_mbuf/rte_mbuf.h?h=v17.08&id=02657b4adcb8af773e26ec061b01cd7abdd3f0b6) the struct rte_mbuf is using uint_16 for nb_segs and port:

    uint16_t nb_segs;         /**< Number of segments. */

/** Input port (16 bits to support more than 256 virtual ports). */
uint16_t port;

I am wondering how this can work. Please compare also my branch e2d2-0-1-1 in my fork.

Rainer

Using EAL Parameters

Hi

I wanted to know if it is possible to use dpdk's EAL arguments with these functions. For example I want to use --socket-mem ,-b (blacklist ports), -n (memory channels), and --xen-dom0. I experimented a little bit but couldn't find anything. I think the -f 'config' command does not allow for these parameters either correct?

unit test failure?

I just get this one (the rest pass) while running netbricks on a container:


---- native_include::bindgen_test_layout_max_align_t stdout ----
	thread 'native_include::bindgen_test_layout_max_align_t' panicked at 'assertion failed: `(left == right)`
  left: `24`,
 right: `32`: Size of: max_align_t', /opt/netbricks/target/release/build/e2d2-8829eb254440fd22/out/dpdk_bindings.rs:1535:438
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at libstd/sys_common/backtrace.rs:59
             at libstd/panicking.rs:380
   3: std::panicking::default_hook
             at libstd/panicking.rs:390
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:576
   5: std::panicking::begin_panic
             at libstd/panicking.rs:537
   6: std::panicking::begin_panic_fmt
             at libstd/panicking.rs:521
   7: e2d2::native_include::bindgen_test_layout_max_align_t
   8: <F as alloc::boxed::FnBox<A>>::call_box
             at libtest/lib.rs:1462
             at /checkout/src/libcore/ops/function.rs:223
             at /checkout/src/liballoc/boxed.rs:788
   9: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:102```

build.sh failure

#Hi all,
I was build the NetBricks using Rust nightly version. When I run build.sh, however when compiling e2d2 v0.2.0 and DPDK bindings, an error occurred. The log is as below. Thanks!

   Compiling e2d2 v0.2.0 (file:///home/tian/NetBricks/framework)
error: failed to run custom build command for `e2d2 v0.2.0 (file:///home/tian/NetBricks/framework)`
process didn't exit successfully: `/home/tian/NetBricks/target/release/build/e2d2-c9809f4dab260928/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-search=native=/home/tian/NetBricks/3rdparty/dpdk/build/lib
cargo:rustc-link-search=native=/home/tian/NetBricks/target/native
Header path Some("/home/tian/NetBricks/framework/src/native_include/dpdk-headers.h")

--- stderr
thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any of [\'libclang.so\', \'libclang.so.*\', \'libclang-*.so\'], set the LIBCLANG_PATH environment variable to a path where one of these files can be found (skipped: [])"', /checkout/src/libcore/result.rs:906:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.

When I use apt-get install libclang, errors are like this:

Compiling e2d2 v0.2.0 (file:///home/tian/NetBricks/framework)
error: failed to run custom build command for `e2d2 v0.2.0 (file:///home/tian/NetBricks/framework)`
process didn't exit successfully: `/home/tian/NetBricks/target/release/build/e2d2-c9809f4dab260928/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-search=native=/home/tian/NetBricks/3rdparty/dpdk/build/lib
cargo:rustc-link-search=native=/home/tian/NetBricks/target/native
Header path Some("/home/tian/NetBricks/framework/src/native_include/dpdk-headers.h")

--- stderr
/usr/local/lib/clang/7.0.0/include/xmmintrin.h:2968:44: error: token is not a valid binary operator in a preprocessor subexpression
/usr/local/lib/clang/7.0.0/include/emmintrin.h:1414:10: error: invalid conversion between vector type '__m128' (vector of 4 'float' values) and integer type 'int' of different size
/usr/local/lib/clang/7.0.0/include/emmintrin.h:2280:66: error: cannot convert between vector values of different size ('__v16hu' (vector of 16 'unsigned short' values) and 'int')
/usr/local/lib/clang/7.0.0/include/emmintrin.h:2304:64: error: cannot convert between vector values of different size ('__v8su' (vector of 8 'unsigned int' values) and 'int')
/usr/local/lib/clang/7.0.0/include/xmmintrin.h:2968:44: error: token is not a valid binary operator in a preprocessor subexpression, err: true
/usr/local/lib/clang/7.0.0/include/emmintrin.h:1414:10: error: invalid conversion between vector type '__m128' (vector of 4 'float' values) and integer type 'int' of different size, err: true
/usr/local/lib/clang/7.0.0/include/emmintrin.h:2280:66: error: cannot convert between vector values of different size ('__v16hu' (vector of 16 'unsigned short' values) and 'int'), err: true
/usr/local/lib/clang/7.0.0/include/emmintrin.h:2304:64: error: cannot convert between vector values of different size ('__v8su' (vector of 8 'unsigned int' values) and 'int'), err: true
thread 'main' panicked at 'Unable to generate DPDK bindings: ()', /checkout/src/libcore/result.rs:906:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build fails in all three ways

When directly building by ./build.sh, it finally shows:
image

When building with RUST_STATIC=1, it shows:
image

When building in containers, it shows:
image

I am new to Rust, so I have not got any idea of how to fix them. Just want to run the NF successfully; any suggestions are highly appreciated!

unresolved import `std::alloc::Opaque`

I am installing an old RUST build which has a few dependencies. While compiling e2d2 this is the error i get. Can i get around this error without moving to any other build?

Edit: This occurs on the latest build too.

error[E0432]: unresolved import std::alloc::Opaque
--> framework/src/allocators/cache_aligned.rs:1:47
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^ no Opaque in alloc

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:2:1
|
2 | #![feature(asm)]
| ^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:3:1
|
3 | #![feature(log_syntax)]
| ^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:4:1
|
4 | #![feature(box_syntax)]
| ^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:5:1
|
5 | #![feature(specialization)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:6:1
|
6 | #![feature(slice_concat_ext)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:7:1
|
7 | #![feature(fnbox)]
| ^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:8:1
|
8 | #![feature(alloc)]
| ^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:9:1
|
9 | #![feature(heap_api)]
| ^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:10:1
|
10 | #![feature(unique)]
| ^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:11:1
|
11 | #![feature(const_fn)]
| ^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:13:1
|
13 | #![feature(ptr_internals)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:15:1
|
15 | #![feature(allocator_api)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:17:1
|
17 | #![feature(integer_atomics)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 14 previous errors

compilation errors on build

on Ubuntu 18.04 LTS, using Rust nightly,

error[E0588]: packed type cannot transitively contain a `[repr(align)]` type
  --> framework/src/shared_state/directory.rs:13:1
   |
13 | / pub struct DirectoryHeader {
14 | |     entries: AtomicUsize,
15 | |     // Used to signal that snapshotting is in progress.
16 | |     current_version: AtomicUsize,
17 | |     committed_version: AtomicUsize,
18 | |     length: usize,
19 | | }
   | |_^

when I am compiling e2d2 , there are some errors,

I use clang 3.9 on Ubuntu, when compiling e2d2 , there are errors like following:

SCTP library found
~/NetBricks/framework ~/NetBricks
Compiling e2d2 v0.2.0 (file:///home/luo/NetBricks/framework)
error[E0432]: unresolved import std::alloc::Alloc
--> framework/src/allocators/cache_aligned.rs:1:24
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^ no Alloc in alloc

error[E0432]: unresolved import std::alloc::Global
--> framework/src/allocators/cache_aligned.rs:1:31
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^ no Global in alloc

error[E0432]: unresolved import std::alloc::Layout
--> framework/src/allocators/cache_aligned.rs:1:39
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^ no Layout in alloc

error[E0432]: unresolved import std::alloc::Opaque
--> framework/src/allocators/cache_aligned.rs:1:47
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^ no Opaque in alloc

error[E0603]: module alloc is private
--> framework/src/allocators/cache_aligned.rs:1:18
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^

error[E0603]: module alloc is private
--> framework/src/allocators/cache_aligned.rs:1:24
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^

error[E0603]: module alloc is private
--> framework/src/allocators/cache_aligned.rs:1:31
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^

error[E0603]: module alloc is private
--> framework/src/allocators/cache_aligned.rs:1:39
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^

error[E0603]: module alloc is private
--> framework/src/allocators/cache_aligned.rs:1:47
|
1 | use std::alloc::{self, Alloc, Global, Layout, Opaque};
| ^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:2:1
|
2 | #![feature(asm)]
| ^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:3:1
|
3 | #![feature(log_syntax)]
| ^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:4:1
|
4 | #![feature(box_syntax)]
| ^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:5:1
|
5 | #![feature(specialization)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:6:1
|
6 | #![feature(slice_concat_ext)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:7:1
|
7 | #![feature(fnbox)]
| ^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:8:1
|
8 | #![feature(alloc)]
| ^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:9:1
|
9 | #![feature(heap_api)]
| ^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:10:1
|
10 | #![feature(unique)]
| ^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:11:1
|
11 | #![feature(const_fn)]
| ^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:13:1
|
13 | #![feature(ptr_internals)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:15:1
|
15 | #![feature(allocator_api)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0554]: #![feature] may not be used on the stable release channel
--> framework/src/lib.rs:17:1
|
17 | #![feature(integer_atomics)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 22 previous errors

error: Could not compile e2d2.

To learn more, run the command again with --verbose.

Error while trying to build NetBricks (#[feature] may not be used on the stable release channel)

Hi,
I am getting following error while trying to build from the current master.

commit 2e30b8e3b701717bc009d3e18a725cbee25f9f92
   Compiling percent-encoding v1.0.0
   Compiling simd v0.1.1 (https://github.com/huonw/simd#0d85d25d)
   Compiling unreachable v1.0.0
   Compiling iovec v0.1.0
   Compiling time v0.1.38
   Compiling num_cpus v1.6.2
error[E0554]: #[feature] may not be used on the stable release channel
  --> /home/gabhijit/.cargo/git/checkouts/simd-a428b8cc9c1d1986/0d85d25/src/lib.rs:19:1

Rust and cargo version

NetBricks$ rustc --version
rustc 1.19.0 (0ade33941 2017-07-17)
NetBricks$ cargo --version
cargo 0.20.0 (a60d185c8 2017-07-13)
NetBricks$ 

I simply followed - git clone and ./build.sh. I already had rust installed, so didn't install nightly.

Any ideas?

-abhijit

packets might be just the right size

f8c0f11 reverts my fix at 0c7ae4d (among other things).

Was this intentional?

(If I recall correctly, we saw the assertion that I changed when hacking in some sort of support for ARP packets - then the packet size is exactly the packet size, there is no additional appended data).

a bug in ip.rs ?

Hello,
I was testing the module aclfw, however, I found it cannot work correctly when I wanted to filter a specified source port.
I looked up into the code of ip.rs used by aclfw.
code snap from ip rs
let port_as_u8 = self_as_u8.offset(self.length() as isize);, the offset value may be wrong. self.length() is the whole length of ip packet, not the ip header length.
So let dst_port = BigEndian::read_u16(&port_slice[..16]); gets the wrong value.
Also, port_slice[..16] may not be right.

Thanks!

Problem building NetBricks

Hi, all. I am trying to build NetBrick from scratch. I followed the instructions and encountered a problem after running build.sh, the output is as follows:

sudo ./build.sh
DPDK found not building
Building rust
Done with deps
make: Entering directory '/home/tzhang/NetBricks/native'
make[1]: Nothing to be done for 'all'.
make: Leaving directory '/home/tzhang/NetBricks/native'
make: Entering directory '/home/tzhang/NetBricks/native'
cp libzcsi.so /home/tzhang/NetBricks/target/native
make: Leaving directory '/home/tzhang/NetBricks/native'
SCTP library found
~/NetBricks/framework ~/NetBricks
./build.sh: line 304: build: command not found

Could you help me find out the problem? Thanks a lot!!

Best regards,
Tianzhu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.