예제 #1
0
static void
send_bogus_packet_ins(struct fail_open *fo)
{
    struct eth_addr mac;
    struct dp_packet b;

    dp_packet_init(&b, 128);
    eth_addr_nicira_random(&mac);
    compose_rarp(&b, mac);

    struct ofproto_async_msg am = {
        .oam = OAM_PACKET_IN,
        .pin = {
            .up = {
                .public = {
                    .packet = dp_packet_data(&b),
                    .packet_len = dp_packet_size(&b),
                    .flow_metadata = MATCH_CATCHALL_INITIALIZER,
                    .flow_metadata.flow.in_port.ofp_port = OFPP_LOCAL,
                    .flow_metadata.wc.masks.in_port.ofp_port
                    = u16_to_ofp(UINT16_MAX),
                    .reason = OFPR_NO_MATCH,
                    .cookie = OVS_BE64_MAX,
                },
            },
            .max_len = UINT16_MAX,
        }
예제 #2
0
/* Creates and returns a new dp_packet with an initial capacity of 'size'
 * bytes. */
struct dp_packet *
dp_packet_new(size_t size)
{
    struct dp_packet *b = xmalloc(sizeof *b);
    dp_packet_init(b, size);
    return b;
}