* Find the name associated with the VM you are using, right click on it and
select **Show Package Contents**
* Find the **.vmx** file and edit it.
-* Find all the occurences of **e1000** and change them to **vmxnet3**
+* Find all the occurrences of **e1000** and change them to **vmxnet3**
If you are concerned more with configuration not performance the vmxnet3 driver
can be set to **interrupt** mode in VPP. This will save a great deal on battery
```
conn 0 0 1
```
-> Last argument specifies interrupt function to use. This function only respondes to ARP requests. This is important because, packet generation and transmitting is handled by a separate thread. Calling memif_tx_burst from multiple threads writing on same queue could transmit uninitialized buffers.
+> Last argument specifies interrupt function to use. This function only responds to ARP requests. This is important because, packet generation and transmitting is handled by a separate thread. Calling memif_tx_burst from multiple threads writing on same queue could transmit uninitialized buffers.
Once connection is established, you can send ping from VPP to icmpr-epoll app to learn its mac address.
```
DBGvpp# ping 192.168.1.2
*/
const static mode_t LACP;
/**
- * Unspecificed bond interface mode
+ * Unspecified bond interface mode
*/
const static mode_t UNSPECIFIED;
*/
const static lb_t L23;
/**
- * Unspecificed bond interface lb
+ * Unspecified bond interface lb
*/
const static lb_t UNSPECIFIED;
{
public:
/**
- * The key for a bridge_domain is the pari of EPG-IDs
+ * The key for a bridge_domain is the pair of EPG-IDs
*/
typedef bridge_domain::key_t key_t;
typedef std::set<gbp_rule> gbp_rules_t;
/**
- * The key for a contract is the pari of EPG-IDs
+ * The key for a contract is the pair of EPG-IDs
*/
typedef std::pair<sclass_t, sclass_t> key_t;
{
public:
/**
- * The key for a route_domain is the pari of EPG-IDs
+ * The key for a route_domain is the pair of EPG-IDs
*/
typedef route_domain::key_t key_t;
/*
* l2_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
adj_unlock(locked_ai);
/*
- * no more entires. +1 shared path-list
+ * no more entries. +1 shared path-list
*/
FIB_TEST((1 == fib_path_list_db_size()), "path list DB population:%d",
fib_path_list_db_size());
"Default route is DROP");
/*
- * no more entires. -1 shared path-list
+ * no more entries. -1 shared path-list
*/
FIB_TEST((0 == fib_path_list_db_size()), "path list DB population:%d",
fib_path_list_db_size());
/*
* remove the attached route from the 2nd FIB. expect the imported
- * entires to be removed
+ * entries to be removed
*/
local_pfx.fp_len = 24;
fib_table_entry_delete(import_fib_index2,
/*
* modify the route in FIB1 so it is no longer attached. expect the imported
- * entires to be removed
+ * entries to be removed
*/
local_pfx.fp_len = 24;
fib_table_entry_update_one_path(import_fib_index1,
FOR_EACH_TEST_CHILD(tc)
{
/*
- * we don't really care how many times the children are visisted, as long as
+ * we don't really care how many times the children are visited, as long as
* it is more than once.
*/
FIB_TEST(1 <= vec_len(tc->ctxs),
FOR_EACH_TEST_CHILD(tc)
{
/*
- * we don't really care how many times the children are visisted, as long as
+ * we don't really care how many times the children are visited, as long as
* it is more than once.
*/
FIB_TEST(1 <= vec_len(tc->ctxs),
* adj_nbr_update_rewrite
*
* Update the adjacency's rewrite string. A NULL string implies the
- * rewrite is reset (i.e. when ARP/ND etnry is gone).
+ * rewrite is reset (i.e. when ARP/ND entry is gone).
* NB: the adj being updated may be handling traffic in the DP.
*/
void
* adj_nbr_update_rewrite_internal
*
* Update the adjacency's rewrite string. A NULL string implies the
- * rewrite is reset (i.e. when ARP/ND etnry is gone).
+ * rewrite is reset (i.e. when ARP/ND entry is gone).
* NB: the adj being updated may be handling traffic in the DP.
*/
void
/**
* An indication that the rewrite is complete, i.e. that it fully describes
- * the link-layer addressing for the desintation.
+ * the link-layer addressing for the destintation.
* The opposite of this is an incomplete rewrite that describes the ARP/ND
* rewrite when probing.
*/
* limitations under the License.
*/
/**
- * bier_dispositon : The BIER disposition object
+ * bier_disposition : The BIER disposition object
*
* A BIER disposition object is present in the IP mcast output list
* and represents the disposition of a BIER bitmask. After BIER header
* limitations under the License.
*/
/**
- * bier_dispositon : The BIER dispositon object
+ * bier_disposition : The BIER disposition object
*
- * A BIER dispositon object is used to pop the BIER header for for-us
+ * A BIER disposition object is used to pop the BIER header for for-us
* packets and steer the packet down the payload protocol specific graph
*/
#include <vnet/dpo/dpo.h>
/**
- * The BIER dispositon object
+ * The BIER disposition object
*/
typedef struct bier_disp_entry_t_ {
/**
*
* A BIER imposition object is present in the IP mcast output list
* and represents the imposition of a BIER bitmask. After BIER header
- * imposition the packet is forward within the appropriate/specifid
+ * imposition the packet is forward within the appropriate/specified
* BIER table
*/
vlib_node_registration_t bier_lookup_node;
/**
- * @brief Packet trace recoed for a BIER lookup
+ * @brief Packet trace record for a BIER lookup
*/
typedef struct bier_lookup_trace_t_
{
/*
* classify_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* cop_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* af_packet_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* netmap_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* vpe_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* vhost-user_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* not maintaining a lock count on the punt
* more trouble than it's worth.
- * There always needs to be one around. no point it managaing its lifetime
+ * There always needs to be one around. no point it managing its lifetime
*/
}
static void
/*
* p2p_ethernet_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
{
/*
* has an associated BFD tracking delegate
- * usource the entry and remove the BFD tracking deletgate
+ * usource the entry and remove the BFD tracking delegate
*/
fib_entry_delegate_remove(fib_entry_get(fei),
FIB_ENTRY_DELEGATE_BFD);
/**
* The magic number of child entries that make a path-list popular.
* There's a trade-off here between convergnece and forwarding speed.
- * Popular path-lists generate load-balance maps for the entires that
+ * Popular path-lists generate load-balance maps for the entries that
* use them. If the map is present there is a switch path cost to indirect
* through the map - this indirection provides the fast convergence - so
* without the map convergence is slower.
/**
* The reasons this walk is occuring.
* This is a vector ordered in time. The reasons and the front were started
- * first, and so should be acted first when a node is visisted.
+ * first, and so should be acted first when a node is visited.
*/
fib_node_back_walk_ctx_t *fw_ctx;
} fib_walk_t;
static const char * const fib_walk_priority_names[] = FIB_WALK_PRIORITIES;
/**
- * @brief Histogram stats on the lenths of each walk in elemenets visisted.
+ * @brief Histogram stats on the lenths of each walk in elemenets visited.
* Store upto 1<<23 elements in increments of 1<<10
*/
#define HISTOGRAM_VISITS_PER_WALK_MAX (1<<23)
* Histogram on the number of nodes visted in each quota
*/
#define N_ELTS_BUCKETS 128
-static u32 fib_walk_work_nodes_visisted_incr = 2;
+static u32 fib_walk_work_nodes_visited_incr = 2;
static u64 fib_walk_work_nodes_visited[N_ELTS_BUCKETS];
/**
/*
* collect the stats:
- * - for the number of nodes visisted we store 128 increments
+ * - for the number of nodes visited we store 128 increments
* - for the time consumed we store quota/TIME_INCREMENTS increments.
*/
- bucket = ((n_elts/fib_walk_work_nodes_visisted_incr) > N_ELTS_BUCKETS ?
+ bucket = ((n_elts/fib_walk_work_nodes_visited_incr) > N_ELTS_BUCKETS ?
N_ELTS_BUCKETS-1 :
- n_elts/fib_walk_work_nodes_visisted_incr);
+ n_elts/fib_walk_work_nodes_visited_incr);
++fib_walk_work_nodes_visited[bucket];
bucket = (consumed_time - quota) / (quota / TIME_INCREMENTS);
{
if (0 != fib_walk_work_nodes_visited[ii])
s = format(s, "%d:%d ",
- (ii * fib_walk_work_nodes_visisted_incr),
+ (ii * fib_walk_work_nodes_visited_incr),
fib_walk_work_nodes_visited[ii]);
}
vlib_cli_output(vm, " %v", s);
if (unformat (input, "%d", &new))
{
- fib_walk_work_nodes_visisted_incr = new;
+ fib_walk_work_nodes_visited_incr = new;
}
else
{
if (NULL == result)
{
/*
- * removing a non-existant entry. i'll allow it.
+ * removing a non-existent entry. i'll allow it.
*/
}
else
/*
* vpe_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* gre_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
}
/* Don't adjust the buffer for ttl issue; icmp-error node wants
- * to see the IP headerr */
+ * to see the IP header */
if (PREDICT_TRUE (error0 == IP4_ERROR_NONE))
{
u32 next_index = adj0[0].rewrite_header.next_index;
}
/* Don't adjust the buffer for ttl issue; icmp-error node wants
- * to see the IP headerr */
+ * to see the IP header */
if (PREDICT_TRUE (error0 == IP4_ERROR_NONE))
{
u32 next_index = adj0[0].rewrite_header.next_index;
is_locally_originated1, &next1, &error1);
/* Don't adjust the buffer for hop count issue; icmp-error node
- * wants to see the IP headerr */
+ * wants to see the IP header */
if (PREDICT_TRUE (error0 == IP6_ERROR_NONE))
{
p0->current_data -= rw_len0;
/**
* @brief publish wildcard arp event
- * @param sw_if_index The interface on which the ARP entires are acted
+ * @param sw_if_index The interface on which the ARP entries are acted
*/
static int
vnet_nd_wc_publish (u32 sw_if_index,
* Complete the remaining fields of the adj's rewrite to direct the
* complete of the rewrite at switch time by copying in the IP
* dst address's bytes.
- * Ofset is 2 bytes into the desintation address.
+ * Ofset is 2 bytes into the destintation address.
*/
offset = vec_len (rewrite) - 2;
adj_mcast_update_rewrite (ai, rewrite, offset);
fib_entry_flag_t entry_flags = FIB_ENTRY_FLAG_NONE;
/*
- * the special INVALID label meams we are not recursing via a
+ * the special INVALID label means we are not recursing via a
* label. Exp-null value is never a valid via-label so that
* also means it's not a via-label and means clients that set
* it to 0 by default get the expected behaviour
static uword
wc_arp_process (vlib_main_t * vm, vlib_node_runtime_t * rt, vlib_frame_t * f)
{
- /* These cross the longjmp boundry (vlib_process_wait_for_event)
+ /* These cross the longjmp boundary (vlib_process_wait_for_event)
* and need to be volatile - to prevent them from being optimized into
* a register - which could change during suspension */
/*
* flow_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* ipip_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* gpe_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
if (NULL == result)
{
/*
- * removing a non-existant entry. i'll allow it.
+ * removing a non-existent entry. i'll allow it.
*/
}
else
/*
* mpls_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
/*
* session_api_hookup
* Add uri's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../open-repo/vlib/memclnt_vlib.c:memclnt_process()
*/
/*
* sr_mpls_api_hookup Add vpe's API message handlers to the table. vlib has
- * alread mapped shared memory and added the client registration handlers.
+ * already mapped shared memory and added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
#define vl_msg_name_crc_list
/*
* sr_api_hookup
* Add vpe's API message handlers to the table.
- * vlib has alread mapped shared memory and
+ * vlib has already mapped shared memory and
* added the client registration handlers.
* See .../vlib-api/vlibmemory/memclnt_vlib.c:memclnt_process()
*/
#
# Send a packet stream that is routed into the tunnel
- # - they are all dropped since the tunnel's desintation IP
+ # - they are all dropped since the tunnel's destintation IP
# is unresolved - or resolves via the default route - which
# which is a drop.
#
#
# Send a packet stream that is routed into the tunnel
- # - they are all dropped since the tunnel's desintation IP
+ # - they are all dropped since the tunnel's destintation IP
# is unresolved - or resolves via the default route - which
# which is a drop.
#