Re: [vpp-dev] PPTP in VPP

2019-07-12 Thread Vladislav Romanov
Yes, we wanna decap/encap it.
We’ve figured out data channel decap/encap. It requires some patches to gre/ppp 
nodes, but we can easily manage it.

The real question is how to make data channel nodes change their behavior 
according to control channel messages.

Currently we’ve some ugly contraption made from tap-inject plugin and linux 
pptp service. It’s throughput is negligible and we wanna get rid of it.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#13498): https://lists.fd.io/g/vpp-dev/message/13498
Mute This Topic: https://lists.fd.io/mt/32429869/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


[vpp-dev] PPTP in VPP

2019-07-11 Thread Vladislav Romanov
Hi all,

I have a question.
If it is possible to release PPTP protocol in VPP with bandwidth 50-100 
mbit/sec?

Regards,
Vlad
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#13489): https://lists.fd.io/g/vpp-dev/message/13489
Mute This Topic: https://lists.fd.io/mt/32429869/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


[vpp-dev] tcp connection

2018-07-25 Thread Vladislav Romanov
please tell me how to update the value of the tcp-flags in each new
packets? For example, to make a tcp-session break.
-- 
с уважением, Владислав
/*
 * Copyright (c) 2015 Cisco and/or its affiliates.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
//#include 

u8 count =0;
//
typedef struct {
  u32 next_index;
  u32 sw_if_index;
  u8 new_src_mac[6];
  u8 new_dst_mac[6];
} sample_trace_t;

static u8 *
format_mac_address (u8 * s, va_list * args)
{
  u8 *a = va_arg (*args, u8 *);
  return format (s, "%02x:%02x:%02x:%02x:%02x:%02x",
 a[0], a[1], a[2], a[3], a[4], a[5]);
}

/* packet trace format function */
static u8 * format_sample_trace (u8 * s, va_list * args)
{
 
  CLIB_UNUSED (vlib_main_t * vm) = va_arg (*args, vlib_main_t *);
  CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *);
  sample_trace_t * t = va_arg (*args, sample_trace_t *);

  clib_warning("SAMPLE TRACe: dst =%u | src=%u | sw_if_index = %u\n", 
t->new_dst_mac , t->new_src_mac, t->sw_if_index);
  
  s = format (s, "SAMPLE TRACe: sw_if_index %d, next index %d\n",
  t->sw_if_index, t->next_index);
  s = format (s, "  new src %U -> new dst %U",
  format_mac_address, t->new_src_mac, 
  format_mac_address, t->new_dst_mac);
   return s;
}

vlib_node_registration_t sample_node;

#define foreach_sample_error \
_(SWAPPED, "Mac swap packets processed")

typedef enum {
#define _(sym,str) SAMPLE_ERROR_##sym,
  foreach_sample_error
#undef _
  SAMPLE_N_ERROR,
} sample_error_t;

static char * sample_error_strings[] = {
#define _(sym,string) string,
  foreach_sample_error
#undef _
};

typedef enum {
  SAMPLE_NEXT_INTERFACE_OUTPUT,
  SAMPLE_N_NEXT,
} sample_next_t;

#define foreach_mac_address_offset  \
_(0)\
_(1)\
_(2)\
_(3)\
_(4)\
_(5)

static uword
sample_node_fn (vlib_main_t * vm,  vlib_node_runtime_t * node, vlib_frame_t * 
frame)
{
  u32 n_left_from, * from, * to_next;
  sample_next_t next_index;
  u32 pkts_swapped = 0;
  from = vlib_frame_vector_args (frame);
  n_left_from = frame->n_vectors;
   next_index = node->cached_next_index;

  while (n_left_from > 0)
{
  u32 n_left_to_next;
  vlib_get_next_frame (vm, node, next_index,  to_next, n_left_to_next);
   
  while (n_left_from > 0 && n_left_to_next > 0)
{
  u32 bi0;
  vlib_buffer_t * b0;
  u32 next0 = SAMPLE_NEXT_INTERFACE_OUTPUT; // u32 next0 = 
SAMPLE_N_NEXT;
  u32 sw_if_index0;
  u8 tmp0[6];
  ethernet_header_t *en0;
  ip4_header_t * ip40;
  ip4_address_t * dst_addr_ip40;
   tcp_header_t *tcp_0; //__attribute__((unused)) 
tcp_header_t * tcp_0; //tcp_header_t *tcp_0;
   u32 *ip_src = 0 , ip_dst = 0;

  /* speculatively enqueue b0 to the current next frame */
  bi0 = from[0];
  to_next[0] = bi0;
  from += 1;
  to_next += 1;
  n_left_from -= 1;
  n_left_to_next -= 1;

  //Get the reference to the buffer
  b0 = vlib_get_buffer (vm, bi0);
  // add 2507 >>>
sw_if_index0 = vnet_buffer(b0)->sw_if_index[VLIB_RX];
// <<<
  /* 
   * Direct from the driver, we should be at offset 0
   * aka at >data[0]
   */
  ASSERT (b0->current_data == 0);

   //2 var
   en0 = vlib_buffer_get_current (b0);
   ip40 = (ip4_header_t *)( en0 + 1) ;
   tcp_0 =ip4_next_header(ip40);
   vlib_buffer_add_data(vm ,)
   if(ip40->protocol  == 6) clib_warning("protocol   TCP \n" );  
if(ip40->protocol  == 17) clib_warning("protocol   UDP \n" );
   struct in_addraddr;
   addr.s_addr = htonl(ip40->src_address.as_u32);
   ip_src = inet_ntoa(addr);
//   addr.s_addr = htonl(ip40->dst_address.as_u32);
//   ip_dst = inet_ntoa(addr);
   clib_warning("NODE ADDRESS: ip src = %s | dst = %s\n" , ip_src,ip_dst);
   
  /* This is where you do whatever you'd like to with your packet */
/* ... */
clib_warning("NODE: BEFORE: tcp_0->flags = 0x%x\n" , tcp_0->flags);
 // for (int i=0; i<6;i++)  clib_warning("en0->src_address%d] = %u\n", 
i 

[vpp-dev] #vpp

2018-07-25 Thread Vladislav Romanov
please tell me how to update the value of the tcp-flags in each new packets 
that is sent to the output node? For example, to make a tcp-session break in a 
plugin
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#9926): https://lists.fd.io/g/vpp-dev/message/9926
Mute This Topic: https://lists.fd.io/mt/23811438/21656
Mute #vpp: https://lists.fd.io/mk?hashtag=vpp=1480452
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-