linux/net/openvswitch/datapath.c
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2007-2012 Nicira, Inc.
   3 *
   4 * This program is free software; you can redistribute it and/or
   5 * modify it under the terms of version 2 of the GNU General Public
   6 * License as published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope that it will be useful, but
   9 * WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11 * General Public License for more details.
  12 *
  13 * You should have received a copy of the GNU General Public License
  14 * along with this program; if not, write to the Free Software
  15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  16 * 02110-1301, USA
  17 */
  18
  19#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
  20
  21#include <linux/init.h>
  22#include <linux/module.h>
  23#include <linux/if_arp.h>
  24#include <linux/if_vlan.h>
  25#include <linux/in.h>
  26#include <linux/ip.h>
  27#include <linux/jhash.h>
  28#include <linux/delay.h>
  29#include <linux/time.h>
  30#include <linux/etherdevice.h>
  31#include <linux/genetlink.h>
  32#include <linux/kernel.h>
  33#include <linux/kthread.h>
  34#include <linux/mutex.h>
  35#include <linux/percpu.h>
  36#include <linux/rcupdate.h>
  37#include <linux/tcp.h>
  38#include <linux/udp.h>
  39#include <linux/ethtool.h>
  40#include <linux/wait.h>
  41#include <asm/div64.h>
  42#include <linux/highmem.h>
  43#include <linux/netfilter_bridge.h>
  44#include <linux/netfilter_ipv4.h>
  45#include <linux/inetdevice.h>
  46#include <linux/list.h>
  47#include <linux/openvswitch.h>
  48#include <linux/rculist.h>
  49#include <linux/dmi.h>
  50#include <linux/workqueue.h>
  51#include <net/genetlink.h>
  52
  53#include "datapath.h"
  54#include "flow.h"
  55#include "vport-internal_dev.h"
  56
  57/**
  58 * DOC: Locking:
  59 *
  60 * Writes to device state (add/remove datapath, port, set operations on vports,
  61 * etc.) are protected by RTNL.
  62 *
  63 * Writes to other state (flow table modifications, set miscellaneous datapath
  64 * parameters, etc.) are protected by genl_mutex.  The RTNL lock nests inside
  65 * genl_mutex.
  66 *
  67 * Reads are protected by RCU.
  68 *
  69 * There are a few special cases (mostly stats) that have their own
  70 * synchronization but they nest under all of above and don't interact with
  71 * each other.
  72 */
  73
  74/* Global list of datapaths to enable dumping them all out.
  75 * Protected by genl_mutex.
  76 */
  77static LIST_HEAD(dps);
  78
  79#define REHASH_FLOW_INTERVAL (10 * 60 * HZ)
  80static void rehash_flow_table(struct work_struct *work);
  81static DECLARE_DELAYED_WORK(rehash_flow_wq, rehash_flow_table);
  82
  83static struct vport *new_vport(const struct vport_parms *);
  84static int queue_gso_packets(int dp_ifindex, struct sk_buff *,
  85                             const struct dp_upcall_info *);
  86static int queue_userspace_packet(int dp_ifindex, struct sk_buff *,
  87                                  const struct dp_upcall_info *);
  88
  89/* Must be called with rcu_read_lock, genl_mutex, or RTNL lock. */
  90static struct datapath *get_dp(int dp_ifindex)
  91{
  92        struct datapath *dp = NULL;
  93        struct net_device *dev;
  94
  95        rcu_read_lock();
  96        dev = dev_get_by_index_rcu(&init_net, dp_ifindex);
  97        if (dev) {
  98                struct vport *vport = ovs_internal_dev_get_vport(dev);
  99                if (vport)
 100                        dp = vport->dp;
 101        }
 102        rcu_read_unlock();
 103
 104        return dp;
 105}
 106
 107/* Must be called with rcu_read_lock or RTNL lock. */
 108const char *ovs_dp_name(const struct datapath *dp)
 109{
 110        struct vport *vport = rcu_dereference_rtnl(dp->ports[OVSP_LOCAL]);
 111        return vport->ops->get_name(vport);
 112}
 113
 114static int get_dpifindex(struct datapath *dp)
 115{
 116        struct vport *local;
 117        int ifindex;
 118
 119        rcu_read_lock();
 120
 121        local = rcu_dereference(dp->ports[OVSP_LOCAL]);
 122        if (local)
 123                ifindex = local->ops->get_ifindex(local);
 124        else
 125                ifindex = 0;
 126
 127        rcu_read_unlock();
 128
 129        return ifindex;
 130}
 131
 132static void destroy_dp_rcu(struct rcu_head *rcu)
 133{
 134        struct datapath *dp = container_of(rcu, struct datapath, rcu);
 135
 136        ovs_flow_tbl_destroy((__force struct flow_table *)dp->table);
 137        free_percpu(dp->stats_percpu);
 138        kfree(dp);
 139}
 140
 141/* Called with RTNL lock and genl_lock. */
 142static struct vport *new_vport(const struct vport_parms *parms)
 143{
 144        struct vport *vport;
 145
 146        vport = ovs_vport_add(parms);
 147        if (!IS_ERR(vport)) {
 148                struct datapath *dp = parms->dp;
 149
 150                rcu_assign_pointer(dp->ports[parms->port_no], vport);
 151                list_add(&vport->node, &dp->port_list);
 152        }
 153
 154        return vport;
 155}
 156
 157/* Called with RTNL lock. */
 158void ovs_dp_detach_port(struct vport *p)
 159{
 160        ASSERT_RTNL();
 161
 162        /* First drop references to device. */
 163        list_del(&p->node);
 164        rcu_assign_pointer(p->dp->ports[p->port_no], NULL);
 165
 166        /* Then destroy it. */
 167        ovs_vport_del(p);
 168}
 169
 170/* Must be called with rcu_read_lock. */
 171void ovs_dp_process_received_packet(struct vport *p, struct sk_buff *skb)
 172{
 173        struct datapath *dp = p->dp;
 174        struct sw_flow *flow;
 175        struct dp_stats_percpu *stats;
 176        struct sw_flow_key key;
 177        u64 *stats_counter;
 178        int error;
 179        int key_len;
 180
 181        stats = per_cpu_ptr(dp->stats_percpu, smp_processor_id());
 182
 183        /* Extract flow from 'skb' into 'key'. */
 184        error = ovs_flow_extract(skb, p->port_no, &key, &key_len);
 185        if (unlikely(error)) {
 186                kfree_skb(skb);
 187                return;
 188        }
 189
 190        /* Look up flow. */
 191        flow = ovs_flow_tbl_lookup(rcu_dereference(dp->table), &key, key_len);
 192        if (unlikely(!flow)) {
 193                struct dp_upcall_info upcall;
 194
 195                upcall.cmd = OVS_PACKET_CMD_MISS;
 196                upcall.key = &key;
 197                upcall.userdata = NULL;
 198                upcall.pid = p->upcall_pid;
 199                ovs_dp_upcall(dp, skb, &upcall);
 200                consume_skb(skb);
 201                stats_counter = &stats->n_missed;
 202                goto out;
 203        }
 204
 205        OVS_CB(skb)->flow = flow;
 206
 207        stats_counter = &stats->n_hit;
 208        ovs_flow_used(OVS_CB(skb)->flow, skb);
 209        ovs_execute_actions(dp, skb);
 210
 211out:
 212        /* Update datapath statistics. */
 213        u64_stats_update_begin(&stats->sync);
 214        (*stats_counter)++;
 215        u64_stats_update_end(&stats->sync);
 216}
 217
 218static struct genl_family dp_packet_genl_family = {
 219        .id = GENL_ID_GENERATE,
 220        .hdrsize = sizeof(struct ovs_header),
 221        .name = OVS_PACKET_FAMILY,
 222        .version = OVS_PACKET_VERSION,
 223        .maxattr = OVS_PACKET_ATTR_MAX
 224};
 225
 226int ovs_dp_upcall(struct datapath *dp, struct sk_buff *skb,
 227              const struct dp_upcall_info *upcall_info)
 228{
 229        struct dp_stats_percpu *stats;
 230        int dp_ifindex;
 231        int err;
 232
 233        if (upcall_info->pid == 0) {
 234                err = -ENOTCONN;
 235                goto err;
 236        }
 237
 238        dp_ifindex = get_dpifindex(dp);
 239        if (!dp_ifindex) {
 240                err = -ENODEV;
 241                goto err;
 242        }
 243
 244        if (!skb_is_gso(skb))
 245                err = queue_userspace_packet(dp_ifindex, skb, upcall_info);
 246        else
 247                err = queue_gso_packets(dp_ifindex, skb, upcall_info);
 248        if (err)
 249                goto err;
 250
 251        return 0;
 252
 253err:
 254        stats = per_cpu_ptr(dp->stats_percpu, smp_processor_id());
 255
 256        u64_stats_update_begin(&stats->sync);
 257        stats->n_lost++;
 258        u64_stats_update_end(&stats->sync);
 259
 260        return err;
 261}
 262
 263static int queue_gso_packets(int dp_ifindex, struct sk_buff *skb,
 264                             const struct dp_upcall_info *upcall_info)
 265{
 266        unsigned short gso_type = skb_shinfo(skb)->gso_type;
 267        struct dp_upcall_info later_info;
 268        struct sw_flow_key later_key;
 269        struct sk_buff *segs, *nskb;
 270        int err;
 271
 272        segs = skb_gso_segment(skb, NETIF_F_SG | NETIF_F_HW_CSUM);
 273        if (IS_ERR(segs))
 274                return PTR_ERR(segs);
 275
 276        /* Queue all of the segments. */
 277        skb = segs;
 278        do {
 279                err = queue_userspace_packet(dp_ifindex, skb, upcall_info);
 280                if (err)
 281                        break;
 282
 283                if (skb == segs && gso_type & SKB_GSO_UDP) {
 284                        /* The initial flow key extracted by ovs_flow_extract()
 285                         * in this case is for a first fragment, so we need to
 286                         * properly mark later fragments.
 287                         */
 288                        later_key = *upcall_info->key;
 289                        later_key.ip.frag = OVS_FRAG_TYPE_LATER;
 290
 291                        later_info = *upcall_info;
 292                        later_info.key = &later_key;
 293                        upcall_info = &later_info;
 294                }
 295        } while ((skb = skb->next));
 296
 297        /* Free all of the segments. */
 298        skb = segs;
 299        do {
 300                nskb = skb->next;
 301                if (err)
 302                        kfree_skb(skb);
 303                else
 304                        consume_skb(skb);
 305        } while ((skb = nskb));
 306        return err;
 307}
 308
 309static int queue_userspace_packet(int dp_ifindex, struct sk_buff *skb,
 310                                  const struct dp_upcall_info *upcall_info)
 311{
 312        struct ovs_header *upcall;
 313        struct sk_buff *nskb = NULL;
 314        struct sk_buff *user_skb; /* to be queued to userspace */
 315        struct nlattr *nla;
 316        unsigned int len;
 317        int err;
 318
 319        if (vlan_tx_tag_present(skb)) {
 320                nskb = skb_clone(skb, GFP_ATOMIC);
 321                if (!nskb)
 322                        return -ENOMEM;
 323
 324                nskb = __vlan_put_tag(nskb, vlan_tx_tag_get(nskb));
 325                if (!nskb)
 326                        return -ENOMEM;
 327
 328                nskb->vlan_tci = 0;
 329                skb = nskb;
 330        }
 331
 332        if (nla_attr_size(skb->len) > USHRT_MAX) {
 333                err = -EFBIG;
 334                goto out;
 335        }
 336
 337        len = sizeof(struct ovs_header);
 338        len += nla_total_size(skb->len);
 339        len += nla_total_size(FLOW_BUFSIZE);
 340        if (upcall_info->cmd == OVS_PACKET_CMD_ACTION)
 341                len += nla_total_size(8);
 342
 343        user_skb = genlmsg_new(len, GFP_ATOMIC);
 344        if (!user_skb) {
 345                err = -ENOMEM;
 346                goto out;
 347        }
 348
 349        upcall = genlmsg_put(user_skb, 0, 0, &dp_packet_genl_family,
 350                             0, upcall_info->cmd);
 351        upcall->dp_ifindex = dp_ifindex;
 352
 353        nla = nla_nest_start(user_skb, OVS_PACKET_ATTR_KEY);
 354        ovs_flow_to_nlattrs(upcall_info->key, user_skb);
 355        nla_nest_end(user_skb, nla);
 356
 357        if (upcall_info->userdata)
 358                nla_put_u64(user_skb, OVS_PACKET_ATTR_USERDATA,
 359                            nla_get_u64(upcall_info->userdata));
 360
 361        nla = __nla_reserve(user_skb, OVS_PACKET_ATTR_PACKET, skb->len);
 362
 363        skb_copy_and_csum_dev(skb, nla_data(nla));
 364
 365        err = genlmsg_unicast(&init_net, user_skb, upcall_info->pid);
 366
 367out:
 368        kfree_skb(nskb);
 369        return err;
 370}
 371
 372/* Called with genl_mutex. */
 373static int flush_flows(int dp_ifindex)
 374{
 375        struct flow_table *old_table;
 376        struct flow_table *new_table;
 377        struct datapath *dp;
 378
 379        dp = get_dp(dp_ifindex);
 380        if (!dp)
 381                return -ENODEV;
 382
 383        old_table = genl_dereference(dp->table);
 384        new_table = ovs_flow_tbl_alloc(TBL_MIN_BUCKETS);
 385        if (!new_table)
 386                return -ENOMEM;
 387
 388        rcu_assign_pointer(dp->table, new_table);
 389
 390        ovs_flow_tbl_deferred_destroy(old_table);
 391        return 0;
 392}
 393
 394static int validate_actions(const struct nlattr *attr,
 395                                const struct sw_flow_key *key, int depth);
 396
 397static int validate_sample(const struct nlattr *attr,
 398                                const struct sw_flow_key *key, int depth)
 399{
 400        const struct nlattr *attrs[OVS_SAMPLE_ATTR_MAX + 1];
 401        const struct nlattr *probability, *actions;
 402        const struct nlattr *a;
 403        int rem;
 404
 405        memset(attrs, 0, sizeof(attrs));
 406        nla_for_each_nested(a, attr, rem) {
 407                int type = nla_type(a);
 408                if (!type || type > OVS_SAMPLE_ATTR_MAX || attrs[type])
 409                        return -EINVAL;
 410                attrs[type] = a;
 411        }
 412        if (rem)
 413                return -EINVAL;
 414
 415        probability = attrs[OVS_SAMPLE_ATTR_PROBABILITY];
 416        if (!probability || nla_len(probability) != sizeof(u32))
 417                return -EINVAL;
 418
 419        actions = attrs[OVS_SAMPLE_ATTR_ACTIONS];
 420        if (!actions || (nla_len(actions) && nla_len(actions) < NLA_HDRLEN))
 421                return -EINVAL;
 422        return validate_actions(actions, key, depth + 1);
 423}
 424
 425static int validate_tp_port(const struct sw_flow_key *flow_key)
 426{
 427        if (flow_key->eth.type == htons(ETH_P_IP)) {
 428                if (flow_key->ipv4.tp.src || flow_key->ipv4.tp.dst)
 429                        return 0;
 430        } else if (flow_key->eth.type == htons(ETH_P_IPV6)) {
 431                if (flow_key->ipv6.tp.src || flow_key->ipv6.tp.dst)
 432                        return 0;
 4PV6" class="sref">ETH_P_IPV6s="line" name="L48ath.c#L334" id="L334" cl_74h/datapath.c#L313" id="L313" class="line" name="L313"> e="L0tapath.c#L313" id="L313" class="line" na1dvswitch/datapath.c#L36datapath.c#L340" id="L340" class="lin_36" id="L336a>;
 422     ref="net/4penvswitch/datapath.c#L347" id4"L337"" cl_74h/datapath.c#L313" id="L313" class  if ( 388    4   validate_sample(const structnskb" class="sref"st structns"sref">sw_flow_key *a;
 398    4   sw_flow_key *flow_key)
 426{
 431              4 nlattr *probability, *(nla));
 408     ref="net/4penvswitch/datapath.c#L343" id44m)
(coitclass="sref">a);
itclass=e(a);
 408     rsref">ETH="+code=user_skb" class=4sref"44L394" class="line" name="L394"> 394stat4   if (!<4 href="+code=user_skb" c4ass="4ref">user_skb,  373stat4         4 new_tableFLOW_BUFSIZE);
actions) < actions) <  426{
out;
;
 422        }
 388    4ref="net/4penvswitch/datapath.c#L349" id448ef">new_tablea);
itclass=e">OVS_SAMPLE_ATTR_MAX- class="line" name="L388"> 388    4r  u44openvswitch/datapZE);
actions) < OVS_SAMPLE_ATTitclass="sref">a);
itclass=e 409              4              0,  422        u45L372" class="line" name="L372"> 372ovs_heL372"/aa href="+code=aitclass="sref">a);
itclass=e 431         *tp. 422        if (!<4="+code=ovs_flow_to_nlat4rs" c45id="L313" class="line" na1dvswitch/datapath.   nla_nest_ea hre_SAMPLE_ATTR_MAXnl" class="line" name="L368"> 368    4ref="net/4penvswitch/datapath.c#L347" id456">nla_nest_ea hre_SAMPLE_ATTR_MAXnl" class="line" name="L368"> 368    4r  }
EINVAL 422      ef="net/4  419              4             tp.nl" class="line" name="L368"> 368    4ref="net/4penvswitch/datapath.c#L341" id46upcall_info" class="sa>->eth.type == htons(ETH_P_IP)) {
 368    4r  flow_key;
 422     ref="net/4penvswitch/datapath.c#L343" id4"L363" class="line" name="L363"> 363    4   EINVAL || (ipv6. 426{
consume_skba>;
 422     r   422     ref="net/4penvswitch/datapath.c#L347" id46"sref">out;
, *(nla));
 408     ef="+code4out" class="sref">outtype = ->ipv6. 426{
;
 422     r        4 390    4href="net4openvswitch/datapath.c#L471" i47upcall_info" class="sa>->ipv6. 426{
flow_key;
 422      class="c4mment">/* Called with ge4l_mut47L363" class="line" name="L363"> 363    4c int EINVAL 422     href="net4openvswitch/datapath.c#L475" i47id="L313" class="line" na1dvswitch/datapath.   struct4nla_nest_ea hre_SAMPLE_ATTR_MAXnl" class="line" name="L368"> 368    4   struct4out;
->ipv6. 426{
type =  422      ef="net/4penvswitch/datapath.c#L349" id4"L379" class="line" name="L379"> 379    4   validate_actions( 422        if (!<4 href="+code=dp" class="4ref">48L361" class="line" name="L361"> 361    4         4 return -a hre_SAMPLE_ATTR_MAXnl" class="line" name="L368"> 368    4ref="net/4penvswitch/datapath.c#L343" id48openvswitch/datapath.a>->ipv6. 426{
EINVAL;
 422         422        struct4 return - 397stat4ref="net/4penvswitch/datapath.c#L348" id48"sref">type 368    4ref="net/4="+code=rcu_assign_point4r" cl48 href="+code=sw_flow_a>;
 422         361    4   return40;
 392}
 393
 394stat4c int validate_actions(const strf">uspa=dp" class="sref"const strf">uspa=d"srefttr *attr,
 426{
 431     ref="net/4penvswitch/datapath.c#L347" id49="sref">flow_taf">vattr *uspa=dlaslicch/datapath.c#L4f">uspa=dlasliccsref">OVS_SAMPLE_ATTX 431     ref="net/4ref="+code=validate_samp4e" cl49"sref">type = OVS_SAMPLE_ATTXhtons())
 398    4         4                 const s4ruct 4a href="+code=sw_flow_">OVS_SAMPLE_ATTXhtons())
 398    4    392}
nlalow_key *a;
OVS_SAMPLE_ATTX 392}
nlalidate_actions(errotapath.c#L370" id="o"L370" class="line" name="L370"> 370}
 363    5   int 5em;
(errotapath.c#L370" id="o"L370>(aparsef="+cod"srefattr,  398    5ref="net/5penvswitch/datapath.c#L455" id50skb" class="sref">consume_skb ;
(ss="sref">rem) {
uspa=dlaslicch/datapath.c#L4f">uspa=dlasliccsref"" class="line" name="L422"> 422    5   m50ref">new_table 426{
out;
;
(errotapath.c#L370" id="o"L370" class="line" name="L370"> 370}
 388    5         5 if (!new_tableOVS_SAMPLE_ATTX- class="line" name="L388"> 388    5         5         return -upcadatapath.c#L417" oef">upcada"srefattr, OVS_SAMPLE_ATTX 368    5         5 attrs[;
 422    5   }
 37251 class="sref">valida2" class="line" name="L392"> 392}
 424
 415    5   validate_tp_port(const struct nlattr *attr,
 395    5   if (!<5 href="+code=probability5 clas51"sref">out;
sw_flow_key *key, int depth)
 399{
 431    5ref="net/5penvswitch/datapath.c#L459" id518ef">new_tablttr *a;
 403    5   5ctions =  370}
 361    5         5 return -e 399{
 370}
 394stat5ref="net/5penvswitch/datapath.c#L455" id52new_table = a, attr, rem) {
 407    5c int  373stat5href="net5openvswitch/datapath.c#L527" i52"sref">out;
vattrOVS_SAMPLE_ATTX 407    5c        5href="+code=flow_key" cl5ss="s52"sref">type = OVS_SAMPLE_ATTX 395    5         5 if (flow_keyOVS_SAMPLE_ATTX 395    5   OVS_SAMPLE_ATTXactclasttrs" spsrefvlac"L417" class="line" name="L395"> 395    5   } else5if (attrs[OVS_SAMPLE_ATTX 395    5         5 if (flow_keyOVS_SAMPLE_ATTX 395    5         5         return 0;
OVS_SAMPLE_ATTX 395    5         5_P_IPV6s="line" name="L45ath.c53class="sref">EINVAL 392}
 e="L0tapath.5#L31353skb" class="sref">conttr *actclasttrs" spsrefvlac"L41/openvswitch/datavlaclass="sref">actvlac"L41" class="line" name="L392"> 392}
nla_type(a);
 408    5ref="net/5penvswitch/datapath.c#L357" id53L397" class="line" name="L397"> 397stat5s  if (type = ->OVS_SAMPLE_ATTR_MAX- class="line" name="L388"> 388    5   flow_keyOVS_SAMPLE_ATTss="sref">a;
actions) <  388    5   OVS_SAMPLE_ATTss="sref">a;
 368    5   if (attrs[;
 422    5         5  372a;
 407    5rsref">ET5="+code=user_skb" class=5sref"54class="sref">EINVAL 368    5   if (!<5 href="+code=user_skb" c5ass="54skb" class="sref">consume_skba>;
 422    5         5  422    5 ef="net/5 goto out;
 368    5   if (type = uspa=dp" class="sref"const strf">uspa=d"srefopenvswitch/datapath.c#L408" id="L408" class="line" name="L408"> 408    5ref="net/5penvswitch/datapath.c#L359" id54ass="sref">flow_key 368    5   u54openvswitch/dataps="sref">consume_skba>;
 370}
 422    5   u55L372" class="line" name="L372"> 372 368    5   EINVALupcadatapath.c#L417" oef">upcada"srefattr,  368    5   if (!<5="+code=ovs_flow_to_nlat5rs" c55skb" class="sref">consume_skb ;
;
 422    5    422    5 ef="net/5penvswitch/datapath.c#L357" id55L397" class="line" name="L397"> 397stat5r  }
 388    5 ef="net/5 flow_key 368    5   conbreak" class="line" name="L422"> 422    5ref="net/5penvswitch/datapath.c#L351" id56L361" class="line" name="L361"> 361    5r  flow_key 368    5ref="net/5penvswitch/datapath.c#L353" id56openvswitch/datapath.c#L433" penvswitch/datavlaclass="sref">actvlac"L41>(nla));
 408    5   EINVALactvlac"L41ref="+code=tp" classvlac_tpide=a" class="srevlac_tpidlass=
ETH_P_IP)) {
 368    5ref="net/5penvswitch/datapath.c#L355" id56skb" class="sref">consume_skbbbbbbbbba>;
 422    5r  actvlac"L41ref="+code=tp" classvlac_tcie=a" class="srevlac_tci"sref">(ETH_P_IP)) {
 368    5ref="net/5penvswitch/datapath.c#L357" id56"sref">out;
;
 422    5r  }
outtype =  422    5ref="net/5="+code=kfree_skb" class5"sref56L379" class="line" name="L379"> 379    5r        5 368    5href="net5openvswitch/datapath.c#L571" i57upcall_info" class="sssssssss"net/openvswitcdatapath.c#L370" id="L370>(attr, depth)
8" class="line" name="L408"> 408    5ref="net/5penvswitch/datapath.c#L352" id57ass="sref">flow_key 368    5 class="c5mment">/* Called with ge5l_mut57openvswitch/datapath.c#L433" bbbbbbbba>;
 370}
EINVAL 422    5href="net5openvswitch/datapath.c#L575" i57id="L313" class="line" na1dvswitch/datapath5   struct5 368    5hef="net/5out;
((attr, depth)

 408    5r  }
type =  368    5 ef="net/5penvswitch/datapath.c#L359" id57ass="sref">flow_key;
 370}
 422    5   if (!<5 href="+code=dp" class="5ref">58L361" class="line" name="L361"> 361    5         5 return -flow_key 368    5ref="net/5penvswitch/datapath.c#L353" id58openvswitch/datapath.bbbbbbbba>;
 422    5   EINVAL 424
 424
 = < class="line" name="L422"> 422    5   struct5 return -probabilitref="net/openvsh/datapath.c#L407" id="L4f">OVS02 class="line" name="L368"> 368    5ref="net/5penvswitch/datapath.c#L358" id58class="sref">EINVAL;
 418
 379    5   valida2" class="line" name="L392"> 392}
 424
 372vavoid "net/openvswitcclear_taf"lass="sref">ETH_clear_taf"l"sreflow_key *ETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L412 class="line" name="L368"> 368    5ref="net/5penvswitch/datapath.c#L354" id5"L394"" class="line" name="L407"> 407    5c int  = ETH_de=k"L41ref="+code=tp" classusode=a" class="sreusodL370>(<2" class="line" name="L392"> 392}
probability = ETH_de=k"L41ref="+code=tp" classtcpodeaglass="sref">ETH_tcpodeaglL370>(<2" class="line" name="L392"> 392}
flow_ = ETH_de=k"L41ref="+code=tp" classpacket_counskb" class="srefpacket_counsL370>(<2" class="line" name="L392"> 392}
type = ETH_de=k"L41ref="+code=tp" classbystrcounskb" class="srefbystrcounsL370>(<2" class="line" name="L392"> 392}
 424
 390    6   const 6truct validate_tp_port(claspacket_cmd_executdp" class="sref"claspacket_cmd_executd"sreflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 * 368    6 1 const 6t;
 407    6   const 6truct ovs_he * 418
6em;
 *a;
 418
 418
m60ref">new_tabllow_key *ETH_+k_buff"L41/openvswitch/datapacketkb" class="srefpacketL418" class="line" name="L418"> 418
ETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41" class="line" name="L418"> 418
tch/datapath.c#L418"L41/openvswitch/datad"h/datapath.c#L4dp"L41" class="line" name="L418"> 418
new_tabllow_key *type ==  418
 = act) &" class="line" name="L418"> 418
attrslidate_actions(errapath.c#L370" id="L370" class="line" name="L370"> 370}
nlalidate_actions(itcsdepth) &" class="line" name="L418"> 418
61L363" class="line" name="L363"> 363    6         6 return - 418
OVS_SAMPLE_ATTXOVS_SAMPLE_ATTX 418
)
OVS_SAMPLE_ATTX- class="line" name="L418"> 418
out;
actions) < OVS_SAMPLE_ATTX 368    6         6 return -EINVAL(errapath.c#L370" id="L370" class="line" name="L370"> 370}
 379    6   6ctions = act) &>(actions) < OVS_SAMPLE_ATTX 370}
ETH___dev_alloc_skb>) < act) &
 408    6         6 return -te_actions(errapath.c#L370" id="L370>( 370}
 368    6         6openvswitch/datapath.c#L624" i62class="sref">EINVAL(errapath.c#L370" id="L370" class="line" name="L370"> 370}
 = ) <  408    6 5 int  = < class="line" name="L422"> 422    6href="net6openvswitch/datapath.c#L627" i62="sref">flow_ = deptmemcpl>) < act) &)
nla));
OVS_SAMPLE_ATTXact) &)" class="line" name="L408"> 408    6         6href="+code=flow_key" cl6ss="s62L388" class="line" name="L388"> 388    6         6 if (fl = ) <  408    6   type == ( 408    6   } else6if ( 361    6         6 if (flted by ovs_flow_extract()Normally, setting the skb 'proticol' field would be handled by a="L373" class="line" name="L373"> 373stat6         6         return 0;
EINVAL 373stat6         6_P_IPV6s="line" name="L46ath.c63classted by ovs_flow_extrac>EINVAL 373stat6s="line" 6ame="L313"> e="L0tapath.6#L31363skb" class="setype ==  368    6s int type ==  408    6 ref="net6penvswitch/datapath.c#L367" id63="sref">flow_else class="line" name="L408"> 408    6         6="+code=len" class="sref6>len<63"sref">type = ETH_P_IP)) {
 408    6         6="+code=len" class="sref6>len<63L379" class="line" name="L379"> 379    6    373stat6   if ( = ETH_de=k"L41>()))" class="line" name="L408"> 408    6         6 te_actions(errapath.c#L370" id="L370>((PrefERRapath.c#L370" iPrefERR/a>)) {
ETH_de=k"L412" class="line" name="L408"> 408    6         6penvswitch/datapath.c#L363" id64openvswitch/de)) {
ETH_de=k"L4122 class="line" name="L368"> 368    6rsref">ET6="+code=user_skb" class=6sref"64class="sref">EINVAL(err_kfree_skbass="sref">ETH_err_kfree_skb( 408    6   if (!<6 href="+code=user_skb" c6ass="64id="L313" class="line" na1dvswitch/datapath6         6 probability = (ETH_de=k"L41ref="+code=tp" class class="sref">depth)

<">(depth) &2" class="line" name="L408"> 408    6 ref="net6 goto probabilitref="net/openvserrapath.c#L370" id="L3702 class="line" name="L368"> 368    6   if (type = (err_de=kefreeass="sref">ETH_err_de=kefree( 408    6         6penvswitch/datapath.c#L369" id64L379" class="line" name="L379"> 379    6   u64tions = ETH_clasde=kemeta 379efrom_ href=l>) &l">(ETH_de=k"L41ref="+code=tp" class class="sref">depth)
ef="+code=htons"phlass="sref">deptphla>)
ef="+code=htons"prioritlass="sref">deptprioritla>)

 class="line" name="L379"> 379    6         6              0, (ETH_de=k"L41ref="+code=tp" class class="sref">depth)
ef="+code=htons"phlass="sref">deptphla>)
ef="+code=htons"int  379    6         6="+code=upcall" class="s6ef">u65ass="sref">flow_keyOVS_SAMPLE_ATTX 408    6ref="net/6penvswitch/datapath.c#L363" id65openvswitch/de 368    6   EINVAL(err_de=kefreeass="sref">ETH_err_de=kefree( 408    6   if (!<6="+code=ovs_flow_to_nlat6rs" c65id="L313" class="line" na1dvswitch/datapath6   probability = nla)
OVS_SAMPLE_ATTX(ETH_de=k"L41ref="+code=tp" class class="sref">depth)

<02" class="line" name="L408"> 408    6rref="net6penvswitch/datapath.c#L367" id65"sref">probabilitref="net/openvserrapath.c#L370" id="L3702 class="line" name="L368"> 368    6r  }
type = (err_de=kefreeass="sref">ETH_err_de=kefree( 408    6 ef="net/6  379    6   ETH_de=k"L41ref="+code=tp" classhastype =has((clasde=kehastype =clasde=kehas<>) &l">(ETH_de=k"L41ref="+code=tp" class class="sref">depth)
f="+code=rem" cla clsdepth) &2" class="line" name="L408"> 408    6ref="net/6penvswitch/datapath.c#L361" id66L361" class="line" name="L361"> 361    6r  te_actions(uctde=upcall_info" ttrdL418>(nla)
OVS_SAMPLE_ATTX 408    6ref="net/6penvswitch/datapath.c#L363" id66openvswitch/dte_actions(errapath.c#L370" id="L370>((PrefERRapath.c#L370" iPrefERR/a>)) {
 408    6r  e)) {
 368    6ref="net/6penvswitch/datapath.c#L365" id66skb" class="sref">congotoate_actions(err_de=kefreeass="sref">ETH_err_de=kefree( 408    6r  probability = )) {
ETH_de=k"L41ref="+code=tp" classsf_uctde=upcall_info" sf_uctda>)
f="+code=rem" clauctde=upcall_info" ttrdL4182" class="line" name="L408"> 408    6rref="net6penvswitch/datapath.c#L367" id66L397" class="line" name="L397"> 397stat6r  }
outtype = ETH_de=k"L41>(ETH_de=k"L41" class="line" name="L418"> 418
fl = deptprioritla>)
>(ETH_de=k"L41ref="+code=tp" class class="sref">depth)
ef="+code=htons"phlass="sref">deptphla>)
ef="+code=htons"prioritlass="sref">deptprioritla>)
" class="line" name="L418"> 418
 390    6href="net6openvswitch/datapath.c#L671" i670ions = )))" class="line" name="L408"> 408    6ref="net/6penvswitch/datapath.c#L362" id67class="sref">te_actions(d"h/datapath.c#L4dp"L41>(upcd""L41lt;  408    6 class="c6mment">/* Called with ge6l_mut67openvswitch/dte_actions(errapath.c#L370" id="L370>()
" class="line" name="L418"> 418
e 368    6href="net6openvswitch/datapath.c#L675" i67skb" class="sref">congotoate_actions(err_unlockapath.c#L370" ierr_unlocka>)
" class="line" name="L418"> 418
 = < class="line" name="L422"> 422    6hef="net/6flow_ = )))" class="line" name="L408"> 408    6r  }
type =  408    6 ef="net/6 href="net/openvswitch/d69" id67f="net/ofnamema> =  =c#L370" ilocal_bh_dis id=/a>)))" class="line" name="L418"> 370}
(_read_locngotoac#L370" ilocal_bh_dis id=/a>)))" class="line" name="L426"> 422    5   if (!<6 href6"+code=dp" class="5ref">58L361" class="line"6name="L366"> 361    5         6 retu68tch/datapath.c#L362" id67clasrefeulloate_actions(errsrefeulloate_ERRapath.c#L370" iPrefERR/a>)) {
ETH_de=k"L412" class="line" name="L366"> 368    5ref="net/6penvs6itch/datapath.low_key;
 422    5    424
congotoate_actions(err_unlockapat="sref">flow_key 424
probad_locngotoate_actions(_read_locngotoac#L370" ilocal_bh_dis id=/a>)))" class="line" name="L422"> 422    5   struct6 retu6n -congotoate_actions(err_de=kefreeass="sr="sref">flow_key 368    5ref="net/6penvs68="+code=datapath"6class67"srsrefeulloate_actions(errsrefeulloate_ERRapath.c#L370" iPrefERR/a>)) {
ETH_de=k"L412" class="line" name="L408"> 418
co/gotoate_actions(err_kfree_skbass="sr="sref">flow_key 379    5    392}
;
flow_key 424
 372 368    5ref="net/6penvs69itch/datapath.c#L524" i52L394" class="line"6name="L406"> 407    5c int ouss="6ref">6em;
OVS_SE_ATTR_MAXOVS_SE_Ach/daass=".0" id_ href="+"srefL401 =o" class="line"6name="L396"> 392}
OVS_SAMPLE_ATTXde_flow_href="+code=nla_type" class="sref">nla_NLALE_ATTR_MAX 392}
OVS_SAMPLE_ATTXde_flow_href="+code=nla_type" class="sref">nla_NLALNESTED_MAX 392}
OVS_SAMPLE_ATTXde_flow_href="+code=nla_type" class="sref">nla_NLALNESTED_MAX 392}
 424
 390    6   const 7truct7ETH_+kba>)

(clasexecu

(clasexecudpexecutdp

 368    6 1 const 7t;
decm41ref="+code=tp"cm4ype" class="sref">nla_ref.0" idpeCMD_EXECUTETTX 372de1ref="+code=tp" clasodeaglass="shlass="sref">deGENL_ADMIN_PER0>( 418
depolic)
ef="+code=htonholic)ch/da"shlass="sref">deh_hdt"_polic)
ef="+code=htonh_hdt"_polic)ef="c id_ href="+"srefL401 =o" class="line"7n4me="L417"> 407    5c int dedoi"L41lt;  392}
 418
 418
 418
uvoid "="srpsamp6 clas607kb" class="slow_key *ETH_+kba>)md_e>uvoid "net/openvswitccmd_e>uvoid "a>tch/datapath.c#L418oid "net/openvswitccoid "a>tcded"h/datapath.c#L4dp"L412 class="line"7name="L417"> 418
 418
attf="+code=tp" claiwitcdatapath.c#L370" id="L370" class="line"7name="L377"> 370}
ETH_+kba>)eullota> =  =a>tch/datapath.c#L418ta> =  =a>tch(d"h/datapath.c#L4dETH_de=ka> =  =a>tckb" class="srefpacketL418)" class="line"7name="L417"> 418
61L363" class="line"7name="L367"> 363    6         7 retu7n -tc=kass="sref">ETH_de=nfeull"se =  =a>tckb" class="srefpacketL418)" class="line"7n4me="L417"> 418
 418
poid "net/openvswitccoid "a>tc=kass="sref">ETH_de=nfhi"L41lt; tc=kass="sref">ETH_de=nfmis"L41ref="+code=tp"nfmis"L4ref==rrapath.c#L370" ioid "net/openvswitccoid "a>tc=kass="sref">ETH_de=nflos"L41lt; (<2" class="line"7name="L417"> 418
a;
 368    6         7 retu7n -ouss="6ref">6em;
uvoid "_percpu uvoid "_percpua>tch/datapath.c#L418percpuvoid "net/openvswitccpercpuvoid "witcdatapath.c#L370" id="L370" class="line"7name="L417"> 370}
6em;
uvoid "_percpu uvoid "_percpua>tchch/d69" id67f="net/ofoid "net/openvswitccnet/ofoid "witcdatapath.c#L370" id="L370" class="line"7name="L417"> 379    6   attoida>)
ef="+code=htooida>witcdatapath.c#L370" id="L370" class="line"7name="L377"> 370}
58L361" class="line"7name="L407"> 408    6         7 retu72=upcall" class="s6ef"datapath.c#L418percpuvoid "net/openvswitccpercpuvoid "witca"shlass="sref">deher_cpu_p *ETH_de=oid "_percpu tccod"h/datapath.c#f="+code=tp" claiwitc=datapath.c#L370" id="L370" class="line"7name="L417"> 370}
61L363" class="line"7name="L367"> 368    6         7openv7witch/datapath.c#L624"do"sref">a;
 370}
poida>)
ef="+code=htooida>witca"shlass="sref">deu64void "_fe07"_begin_bkey * =clasde=kehasETH_de=oynde=aclasde=keu="oyndwitc=datapath.c#L370" id="L370" class="line"7name="L417"> 408    6 5 int  422    6href="net7openv72="+code=flow_tabl5" c}_extlesu6_dev"66class="u64void "_fe07"_retry_bkey * =clasde=kehasETH_de=oynde=aclasde=keu="oyndwitccod"h/datapath.c#oida>)
ef="+code=htooida>witc)=datapath.c#L370" id="L370" class="line"7name="L367"> 408    6         7href=7+code=flow_key" cl6ss="s62L388" class="line"7name="L387"> 388    6         7 if (72tch/datapath.c#L359" sref6>err<66">poid "net/openvswitccoid "a>tc=kass="sref">ETH_de=nfhi"L41lt; denet/ofoid "net/openvswitccnet/ofoid "witcphlass="sref">denfhi"L41lt;  408    6   tc=kass="sref">ETH_de=nfmis"L41ref="+code=tp"nfmis"L4ref==+"shlass="sref">denet/ofoid "net/openvswitccnet/ofoid "witcphlass="sref">denfmis"L41ref="+code=tp"nfmis"L4ref=datapath.c#L370" id="L370" class="line"7name="L407"> 408    6   } else7if (<73       0, tc=kass="sref">ETH_de=nflos"L41lt; denet/ofoid "net/openvswitccnet/ofoid "witcphlass="sref">denflos"L41lt;  361    6         7 if (7a href="+code=     const s5ruct 5a href" class="line"7name="L377"> 373stat6         7     73itch/     const s5ruct 5a href" class="line"7name="L377"> 373stat6         7_P_IP73itch/datapath.c#L524" i52L394" class="line"7name="L377"> 373stat6s="line" 7ame="73ode=v i52"sref">ouss="6ref">6em;
OVS_SE_ATTR_MAXOVS_SE_Ach/daass=".0" id_ href="+"srefL401 =o" class="line"7name="L367"> 368    6s int OVS_SAMPLE_ATTXOVS_SAMPapXde_flow_href="+code=nla_type" class="sref">nla_NLALNESTED_MAX 408    6 ref="net7penvs73tch/datapath.net/=ath.c#L403" id=FLOW>OVS_SAMPLE_ATTXOVS_SAMPLE_AapXde_flow_href="+code=nla_type" class="sref">nla_NLALNESTED_MAX 408    6         7="+co73ode=validate_net/=ath.c#L403" id=FLOW>OVS_SCLEA>eOVS_SCLEA>apXde_flow_href="+code=nla_type" class="sref">nla_NLALFLAG_MAX 408    6         7="+co73      datapath.c#L370" id="L370" class="line"7name="L377"> 379    6    373stat6   if (ETH_+kba>)

 408    6         7 dep41ref="+code=tp"i4ref==rrapath.c#L370" iGENL_ID_GENERATETTX 408    6         7penvs7itch/datapath.phlass="sref">dehdrsizow_href="+code=nhdrsizoref==rrsizoofpsamp6 clas607kb" classupcd""L41lt;  368    6rsref">ET7="+co7e=user_skb" clphlass="sref">denef"
ef="+code=htonhef"ype" class="sref">nla_ref.FLOW>FAMILPLE_ATTXFAMILPef="c id_ href="+"srefL401 =o" class="line"7name="L377"> 408    6   if (!<7 href744user_skb" clphlass="sref">deversio)
f="+code=rem" versio)ype" class="sref">nla_ref.FLOW>VERSLE_LE_ATTXVERSLE_ef="c id_ href="+"srefL401 =o" class="line"7name="L367witch/datapath6         7 demaxe> *nla_ref.FLOW>OVS_SE_ATTR_MAXOVS_SE_Ach/d id_ href="+"srefL401 =o" class="line"7name="L407"> 408    6 ref="net7 goto74tch/d datapath.c#L370" id="L370" class="line"7name="L367"> 368    6   if ( 408    6         7penvs748 href="+codbass="sref">ETH_+kba>)

(uvhref=lul+coast_grou41>( 379    6   denef"
ef="+code=htonhef"ype" class="sref">nla_ref.FLOW>MCGROUPTTR_MAXMCGROUPode=flow_key" cl6ss="s62L388" class="line"7name="L377"> 379    6         7     7       datapath.c#L370" id="L370" class="line"7name="L377"> 379    6         7="+co75ref="net/openvswi5ch/da59L372" class="line"7name="L407"> 408    6ref="net/7penvs75  return 0;
 368    6   href=" clfillow_key *href=" clfillow_ke="srpsamp6 clas607kb" class="slow_key *ETH_+code=k"L41/openvswitch/datadeskbass="sref">ETH_+kba>)="slow_key * 408    6   if (!<7="+co75itch/datapath.c#L675" class="""""""""""aspacket_cmd_executd"sreflow_key *ETH_+k_buff"L41/openvswitch/datask6_dev"66class="u"> 373sa hrefu3itch/shlass="sref">dehp41ref="+code=tp"pi4ref=se may not have" id="L373" class="line"7name="L367witch/datapath6    373sa hrefu3itch/shlass="sref">deseqf"L41/openvswitceqdatask6_dev"66class="u"> 373sa hrefu3itch/shlass="sref">de1ref="+code=tp" clasodeaglasssk6_dev"66class="u8 373sa hrefu8tch/shlass="sref">decm41ref="+code=tp"cm4ype"ded"h/datapath.c#L4dp"L412 class="line"7name="L407"> 408    6rref="net7penvs7itch/d" id_ href="+"srefL401 =o" class="line"7name="L367"> 368    6r  }
ous" c6ass="6ref">attokb_orig/a>)
f="+code=rem" okb_orig/a>)ref==rrapath.c#L370" iouff"L41/openvswitch/data=kass="sref">ETH_de=a> = act) &" class="line"7name="L407"> 408    6 ef="net/7 ouacti65" id60skb" class="slow_key *act) &" class="line"7name="L377"> 379    6   desid "net/openvswitccoid "a>tc" class="sref">act) &" class="line"7name="L407"> 408    6ref="net/7penvs760     act) &" class="line"7name="L377"> 361    6r  ETH_+kba>)hre> *ETH_+kba>)hreact) &" class="line"7name="L407"> 408    6ref="net/7penvs7itch/datapath.unntetedrlongk6_dev"66class="u"L41ref="+code=tp"u"L4ref=datapath.c#L370" id="L370" class="line"7name="L407"> 408    6r  sa hrefu8tch/shlass="sref">detcuvhref="+code=tp" clastcuvhref=ref=datapath.c#L370" id="L370" class="line"7name="L377"> 368    6ref="net/7penvs7itch/datapath.s" c6ass="6ref">attrslidate_actions(errapath.c#L370" id="L370" class="line"7name="L407"> 408    6r   = < class="line"7name="L407"> 408    6rref="net7penvs76tch/datapath.c#L357" id59="sk"L41ref="+code=tp" classsf_uctde=rrapath.c#L370" i_readeataeatn="ssh_pectL41ref="+code=tp"_readeataeatn="ssh_pectL4="srp="sref">ETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41ref="+code=tp" classsf_uctde=de=flow_tabl6" cla67> = < class="line"7name="L367"> 397stat6r  }
err<56 hrea href6"+capath.c#L370" iotoadepo

 418
 418
) < ETH_+cobuff"L41/openvswitch/datask6_dev"66class="hp41ref="+code=tp"pi4ref=sshlass="sref">deseqf"L41/openvswitceqdataske =clasde=kehasde1ref="+code=tp" clasodeaglasssk6_dev"66class="cm41ref="+code=tp"cm4ype"ddatapath.c#L370" id="L370" class="line"7name="L397"> 390    6href="net7openv7witch/datapathws" 6lass=67class="supcd""L41lt;  408    6ref="net/7penvs77=upcall" class="s6ef"low_keyapath.c#L370" id=MSGSIZETTX(errapath.c#L370" id="L370" class="line"7name="L407"> 408    6 class="c7mment77code=rem" class="6ref">61L363" class="line"7name="L417"> 418
(d"h/datapath.c#L4dp"L441ref="+code=tp" class4dp"L441ref="="srp="sref">ETH_+coref">e 368    6href="net7openv77=ovs_flow_to_nlat6rs" c65id="L313" class="l7name="L417"> 418
phreactnest_oida>)
ef="+code=htonest_oida>="srp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class=" id=FLOW>OVS_SAMPLE_ATTXOVS_SAMPapX 422    6hef="net/7 408    6r  }
type hre_putofailur"
ef="+code=htonhre_putofailur"/a>(errapath.c#L370" id="L370" class="line"7name="L417"> 408    6 ef="net/7 href7"net/openvswitch/d69" id67f="ns =  =clasde=kehas<>) &l">(ETH_de=k"L41ref="+code=tp" class class="sref">depbuff"L41/openvswitch/dataderrapath.c#L370" id="L370" class="line"7name="L417"> 370}
probabilitref="net/openvserrapath.c#L370" id="L3702 class="line"7name="L427"> 422    5   if (!<7 href78       0, coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"7name="L367"> 361    5         7 retu78tch/datapath.c#L362" id67clanest_en41ref="+code=tp"n/a>nest_en4="srp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class="hre 368    5ref="net/7penvs78code=rem" class="6ref">61L363" class="line"7name="L427"> 422    5    *(ETH_de=otoate_actions(otoac#L3)errapath.c#L370" id="L370" class="line"7name="L377"> 424
deptprioritla>)
>(ETH_de=u"L41ref="+code=tp"u"L4ref=datapath.c#L370" id="L370" class="line"7name="L427"> 424
psid "net/openvswitccoid "a>tcphlass="sref">denfxecutd"sedeptprioritla>)
>(ETH_de=xecutdp"ef="+code=tp" classxecutdp"ef="ref=datapath.c#L370" id="L370" class="line"7name="L407"> 422    5   struct7 retu78tch/datapath.c#L357" id59="skid "net/openvswitccoid "a>tcphlass="sref">denfbyte"sedeptprioritla>)
>(ETH_de=bytep"ef="+code=tp" classbytep"ef="ref=datapath.c#L370" id="L370" class="line"7name="L367"> 368    5ref="net/7penvs78="+code=datapath"6class67"srtcuvhref="+code=tp" clastcuvhref=ref=s="sref">deptprioritla>)
>(ETH_de=tcuvhref="+code=tp" clastcuvhref=ref=datapath.c#L370" id="L370" class="line"7name="L407"> 418
 *(ETH_de=otoate_actions(otoac#L3)errapath.c#L370" id="L370" class="line"7name="L417"> 379    5    392}
edatapath.c#L500" i59L390" class="line"7name="L367"> 424
type hre_putou"> 368 e=htonhre_putouitch/dp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class=" id=FLOW>OVS_SUSED_MAXOVS_SUSEDdatask6_dev"66class="om_ href=u"L4_tif"
ef="+code=htonom_ href=u"L4_tif"ch/dp="sref">ETH_+cou"L41ref="+code=tp"u"L4ref=)tde=upcall_info" ttrdL41822 class="line"7name="L377"> 372type hre_putofailur"
ef="+code=htonhre_putofailur"/a>(errapath.c#L370" id="L370" class="line"7name="L367"> 368    5ref="net/7penvs79itch/datapath.c#L524" i52L394" class="line"7name="L407"> 407    5c int  e="L0tapath.6#L31363skb" clsid "net/openvswitccoid "a>tcphlass="sref">denfxecutd"seedatapath.c#L500" i59L390" class="line"7name="L427"> 392}
type hre_put
ef="+code=htonhre_putch/dp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class=" id=FLOW>OVS_SSTATATTXOVS_SSTATActde=de=flow_tabl6" cla67> = < class="line"7name="L397"> 392}
 =clasde=kehastcdde=upcall_info" ttrdL41822 class="line"7name="L367"> 392}
type hre_putofailur"
ef="+code=htonhre_putofailur"/a>(errapath.c#L370" id="L370" class="line"7name="L407"> 392}
 424
tcuvhref="+code=tp" clastcuvhref=ref=seedatapath.c#L500" i59L390" class="line"8name="L398"> 390    6   const 8truct80       0, type hre_putou8 373sa hrefhre_putou8ch/dp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class=" id=FLOW>OVS_STCPLFLAGATTXOVS_STCPLFLAGAdatask6_dev"66class="tcuvhref="+code=tp" clastcuvhref=ref=dde=upcall_info" ttrdL41822 class="line"8name="L368"> 368    6 1 const 8t;
type hre_putofailur"
ef="+code=htonhre_putofailur"/a>(errapath.c#L370" id="L370" class="line"8n2me="L368"> 37261L363" class="line"8name="L418"> 418
OVS_SAMPLE_A doesn't fit, skip dumping the a href=fc#which we may not have" id="L373" class="line"8n4me="L418"> 407    5c int  392}
 392}
 =fc#Lwe didn't do thi=./aich we may not have" id="L373" class="line"8n7me="L418"> 392}
 392}
 424
 418
 370}
 418
 363    6         8 retu8n -ETH_+cobuff"L41/openvswitch/datask6_dev"66class=" id=FLOW>OVS_SAMPLE_ATTXOVS_SAMPLE_AapX< class="sref">depb"L41ref="+code=tp" classsf_uctde=kass="sref">ETH_de=capath.ca> =  ctde=de=flow_tabl6" cla67> = < class="line"8n4me="L418"> 418
depb"L41ref="+code=tp" classsf_uctde=kass="sref">ETH_de=capath.=  418
probabilitref="net/openvs < 0seec6ass="6ref">attokb_orig/a>)
f="+code=rem" okb_orig/a>)ref=de=upcall_info" ttrdL41822 class="line"8name="L418"> 418
coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"8name="L368"> 368    6         8 retu81code=flow_key" cl6ss="s62L388" class="line"8name="L418"> 370}
en4ch/dp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class="upcd""L41lt;  379    6    370}
(="sref">flow_key 408    6         8 retu82tch/datapath.c#L362" id67clanvswitch/dte_actions(errapath.c#L370" id=MSGSIZETTX(errapath.c#L370" id="L370" class="line"8name="L418"> 370}
coobabilitref="net/opo(="sref">flow_key 368    6         8openv82 -c 0celch/dp="sref">ETH_+cobuff"L41/openvswitch/datask6_dev"66class="upcd""L41lt;  370}
 408    6 5 int  422    6href="net8openv82tch/datapath.c#L367" id66L397" class="line"8name="L368"> 408    6         8href=8+code=f="+codbass="sref">ETH_+kba>)reflow_key *ETH_+k_ef">href=" cl#L370ow_key *href=" cl#L370ow_kech/dpsamp6 clas607kb" class="slow_key *ETH_+code=k"L41/openvswitch/datadede=upcall_info" ttrdL41822 class="line"8name="L388"> 388    6         8 if (82tch/d" id_ href="+"srefL401 =o" class="line"8name="L418"> 408    6   ouacti65" id60skb" class="slow_key *act) &" class="line"8name="L408"> 408    6   } else8if (<83f="+code=attrs" c6ass="6ref">atta> = act) &" class="line"8name="L408"> 361    6         8 if (83ref="net/openvswi5ch/da59L372" class="line"8name="L378"> 373stat6         8     83/* Called with ge6l_mut67opek"L41ref="+code=tp" classsf_uctde=rrapath.c#L370" i_readeataeatn="ssh_pectL41ref="+code=tp"_readeataeatn="ssh_pectL4="srp="sref">ETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41ref="+code=tp" classsf_uctde=de=flow_tabl6" cla67> = < class="line"8name="L378"> 373stat6         8_P_IP83itch/datapath.c#L624"""""""""""""""""""""""""""""="sref">ETH_de=otoadepo

 373stat6s="line" 8ame="83=ovs_flow_to_nlat6rs" c65id="L313" class="l8name="L368"> 368    6s int OVS_SAMP"* which we may not have" id="L373" class="line"8name="L408"> 408    6 ref="net8penvs83="+code=flow_tabl6" cla67="sr> = ETH_+coFLOW>BUFSIZETTXBUFSIZEapat)errapath.c#L370" id="L370" class="line"8name="L368"> 408    6         8="+co83ode=validate_urn 0;
OVS_SAMPLE_A * which we may not have" id="L373" class="line"8name="L388"> 408    6         8="+co83net/openvswitch/d69" id67f="n> = dehre_tot/ofoizow_href="+code=nhre_tot/ofoizo="srp="sref">ETH_+cob"L41ref="+code=tp" classsf_uctde=kass="sref">ETH_de=capath.ca> =  ctde)errapath.c#L370" id="L370" class="line"8name="L418"> 379    6   OVS_SSTATA * which we may not have" id="L373" class="line"8name="L378"> 373stat6   if (dehre_tot/ofoizow_href="+code=nhre_tot/ofoizo="srpsizoofpsamp6 clas607kb" classupcduct  408    6         8 OVS_STCPLFLAGA * which we may not have" id="L373" class="line"8name="L378"> 408    6         8penvs84/* Called with ge6l_mut67open> = dehre_tot/ofoizow_href="+code=nhre_tot/ofoizo="srp1)errapath.c#L370" id="L370" class="line"8name="L378"> 368    6rsref">ET8="+co843 href="+codeurn 0;
OVS_SUSED * which we may not have" id="L373" class="line"8name="L378"> 408    6   if (!<8 href84tch/datapath.c#L465" id62newn> = dehre_tot/ofoizow_href="+code=nhre_tot/ofoizo="srp8)errapath.c#L370" id="L370" class="line"8name="L368witch/datapath6         8  = < class="line"8name="L408"> 408    6 ref="net8 goto84="+code=flow_tabl6" cla67="sr> = deNLMSG_ALIG_LE_ATTX 368    6   if ( 408    6         8penvs84tch/datapath.low_keynek"L41/openvswitc4dnek="srp="sref">ETH_+cor> =  379    6    379    6         8     85+code=dp" class="5ref">58L361" class="line"8name="L378"> 379    6         8="+co85ref="f="+codbass="sref">ETH_+kba>)reflow_key *ETH_+k_ef">href=" clbuildow_key *href=" clbuildow_kech/dpsamp6 clas607kb" class="slow_key *ETH_+code=k"L41/openvswitch/datade=de=flow_tabl6" cla67> = < class="line"8name="L408"> 408    6ref="net/8penvs852upcall" class="s6claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabass="sref">ETH_+kba>)="slow_key * 368    6    373sa hrefu3itch/shlass="sref">dehp41ref="+code=tp"pi4ref=scapath.c#L370" iu"> 373sa hrefu3itch/shlass="sref">deseqf"L41/openvswitceqdatask6_dev"66class="u8 373sa hrefu8tch/shlass="sref">decm41ref="+code=tp"cm4ype"ded"h/datapath.c#L4dp"L412 class="line"8name="L378"> 408    6   if (!<8="+co85itch/" id_ href="+"srefL401 =o" class="line"8name="L368witch/datapath6    *ETH_+k_buff"L41/openvswitch/dataerrapath.c#L370" id="L370" class="line"8name="L408"> 408    6rref="net8penvs85tch/datapath.c" c6ass="6ref">attlowval1ref="+code=tp"lowvaldataerrapath.c#L370" id="L370" class="line"8name="L368"> 368    6r  }
 408    6 ef="net/8  *href=" cl#L370ow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datadederrapath.c#L370" id="L370" class="line"8name="L378"> 379    6    408    6ref="net/8penvs86       0, ( 361    6r   408    6ref="net/8penvs86/* Called with ge6l_mut67opelowval1ref="+code=tp"lowvaldata=rrapath.c#L370" id="L370>(" clfillow_key *href=" clfillow_ke="srp="sref">ETH_+code=k"L41/openvswitch/datade=aath.c#L370" ietdpa>"L41/openvswitch/das=flow6key" 6lass=uff"L41/openvswitch/datask6_dev"66class="hp41ref="+code=tp"pi4ref=sshlass="sref">deseqf"L41/openvswitceqdatask0sk6_dev"66class="cm41ref="+code=tp"cm4ype"ddatapath.c#L370" id="L370" class="line"8name="L408"> 408    6r  ETH_+colowval1ref="+code=tp"lowvaldata=< 0ddatapath.c#L370" id="L370" class="line"8name="L378"> 368    6ref="net/8penvs86itch/datapathlow_key 408    6r   408    6rref="net8penvs86tch/datapath.c#L367" id66L397" class="line"8name="L368"> 397stat6r  }
href=" clnek_or_se"+code=tp" classd="Leullo" clnek_or_se"ch/dpsamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 418
 418
 *ETH_+k_eactw_key *ETH_de=clasde=kemeta 379efrclasd="srerrapath.c#L370" id="L370" class="line"8name="L398"> 390    6href="net8openv870     actw_key *ETH_de=u"Lrhdopenvswitch/datau"Lrhdo="srerrapath.c#L370" id="L370" class="line"8name="L378"> 408    6ref="net/8penvs87/openvswitch/bass="sref">ETH_+kba>)=keuct dek"L41ref="+code=tp" classerrapath.c#L370" id="L370" class="line"8name="L408"> 408    6 class="c8mment872openvswitch/bass="sref">ETH_+kba>)=keuct key *ETH_+code=k"L41/openvswitch/datadeerrapath.c#L370" id="L370" class="line"8name="L408"> 418
 *ETH_+k_repl)
ef="+code=htonrepl)tadeerrapath.c#L370" id="L370" class="line"8name="L378"> 368    6href="net8openv874-tch/datapath.c#L418"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"8name="L408"> 418
 =  =a>tch/datapath.c#L418ta> =  =a>tcerrapath.c#L370" id="L370" class="line"8name="L408"> 422    6hef="net/8att">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"8name="L368"> 408    6r  }
att" cca> =  /a>(errapath.c#L370" id="L370" class="line"8name="L408"> 408    6 ef="net/8 href87f="+code=nla_put_664" c65L379" class="line"8name="L418"> 370}
 422    5   if (!<8 href880et/openvswitch/d69" id67f="">coobabilitref="net/opo(errapath.c#L370" id=INVAL= (errapath.c#L370" id="L370" class="line"8name="L368"> 361    5         8 retu88tch/datapath.c#L36lass=67class="seOVS_SAMPLE_ATTXOVS_SAMPapX 368    5ref="net/8penvs882upcall" class="s6class65"sref">type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"8name="L428"> 422    5   coobabilitref="net/opo(erra6tr" c6ass="sref">href=froma>(clasde=kemeta 379efrom_ href=froma>(clasdch/dpe =clasde=kehas =clasde=kehas =  /a>(sk6_dev"66class="eOVS_SAMPLE_ATTXOVS_SAMPapX 424
 e="L0tapath.6#L31363skb" cl">coobabilitref="net/opo(drrapath.c#L370" id="L370" class="line"8name="L408"> 424
type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"8name="L408"> 422    5   struct8 retu88tch/datapath.c#L367" id66L397" class="line"8name="L368"> 368    5ref="net/8penvs88ode=validate_urn 0;
 418
OVS_SAMPLE_ATTXOVS_SAMPLE_AapX 379    5   coobabilitref="net/opo(erra6tr" c6ass="srvaliclaekey *ETH_+coeOVS_SAMPLE_ATTXOVS_SAMPLE_AapX =clasde=kehas 392}
coobabilitref="net/opo(drrapath.c#L370" id="L370" class="line"8name="L368"> 424
type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"8name="L378"> 372 *ETH_de=

ETH_de=cm41ref="+code=tp"cm4ype" =class="sref">nla_ref.FLOW>CMD_NEWTTXCMD_NEW/a>(dl" id_ href="+"srefL401 =o" class="line"8name="L368"> 368    5ref="net/8penvs89itch/datapath.c#L624"ch/d69" id67f="">coobabilitref="net/opo(errapath.c#L370" id=INVAL= (errapath.c#L370" id="L370" class="line"8name="L408"> 407    5c int type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"8name="L408"> 392}
 392}
 392}
"L41/openvswitch/da>(d"h/datapath.c#L4dp"L4penvswitch/data

p"L4="srp="sref">ETH_+coupcd""L41lt;  392}
(errapath.c#L370" id=NODEV>((errapath.c#L370" id="L370" class="line"8name="L418"> 424
e 390    6   const 9truct90       0, type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"9name="L369"> 368    6 1 const 9t;
 372 =  =a>tch(d"h/datapath.c#L4d *ETH_+coref">eETH_de=ta> =  =a>tcddatapath.c#L370" id="L370" class="line"9name="L419"> 418
(tblootoku4="srp="sref">ETH_+cota> =  =a>tc ce =clasde=kehas =  /a>(ddatapath.c#L370" id="L370" class="line"9n4me="L419"> 407    5c int  e="L0tapath.6lass=67class="sde=k"L41/openvswitch/datadedl" id_ href="+"srefL401 =o" class="line"9n5me="L419"> 392}
act) &" class="line"9n6me="L419"> 392}
 392}
 392}
(errapath.c#L370" id=NOENT>(act) &" class="line"9n9me="L419"> 424
 *ETH_de=

ETH_de=cm41ref="+code=tp"cm4ype" =class="sref">nla_ref.FLOW>CMD_SET>(CMD_SET"+codrrapath.c#L370" id="L370" class="line"9name="L419"> 418
type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"9name="L369"> 370}
 418
 =,aathnecessary, 65"make roomce, which we may not have" id="L373" class="line"9name="L369"> 363    6         9 retu91itch/datapath.c#L624"ath.6#L31363skb" clmd_e370>(tbloneL4_to_expand1>(ETH_+cota> =  =a>tc)dl" id_ href="+"srefL401 =o" class="line"9n4me="L419"> 418
 =  =a>tch/datapath.c#L418nek_ta> =  =/a>(errapath.c#L370" id="L370" class="line"9n5me="L419"> 418
 = < class="line"9name="L419"> 418
(tbloexpand="srp="sref">ETH_+cota> =  =a>tc)errapath.c#L370" id="L370" class="line"9n7me="L419"> 368    6         9 retu91 -ath.6lass=67class="sIS_ER>e="srp="sref">ETH_+conek_ta> =  =/a>()dl" id_ href="+"srefL401 =o" class="line"9n8me="L419"> 370}
ETH_+coref">eETH_de=ta> =  =a>tcsk6_dev"66class="hek_ta> =  =/a>()errapath.c#L370" id="L370" class="line"9n9me="L419"> 379    6   (tblodtaearL4_deaspoL="srp="sref">ETH_+cota> =  =a>tc)errapath.c#L370" id="L370" class="line"9name="L379"> 370}
ETH_+coref">eETH_de=ta> =  =a>tcddatapath.c#L370" id="L370" class="line"9name="L409"> 408    6         9 retu92=upcall" class="sss="s="s6cla     const s5ruct 5a href" class="line"9name="L419"> 370}
 368    6         9openv92itch/datapath.c#L524" i52L394" class="line"9name="L379"> 370}
 408    6 5 int (#L370="srpddatapath.c#L370" id="L370" class="line"9name="L419"> 422    6href="net9openv92="+code=flow_tabl5" cath.6#L31363skb" clIS_ER>e="srp="sref">ETH_+code=k"L41/openvswitch/datadeddl" id_ href="+"srefL401 =o" class="line"9name="L369"> 408    6         9href=92 -apath.c#L370" i">coobabilitref="net/opo(erra6tr" c6ass="srPTR_ER>e="srp="sref">ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"9n8me="L419"> 388    6         9 if (928ode=upcall_info"6clatabl5" css65"sref">type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"9name="L419"> 408    6    408    6   } else9if (<93       0, ETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41ref="+code=tp" classerra6tr" c6ass="srk"L41ref="+code=tp" classerrapath.c#L370" id="L370" class="line"9name="L409"> 361    6         9 if (93=upcall" class="sss="="sref">ETH_de=clearETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"9name="L379"> 373stat6         9     93code=rem" class="6ref">61L363" class="line"9name="L379"> 373stat6         9_P_IP93itch/datapath.c#L624"urn 0;
 373stat6s="line" 9ame="93itch/datapath.c#L675"unla+code=keuct41ref="+code=tp" clsf_uctde=rrapath.c#L370" id="L370>(#apath.c#L37041ref="+code=tpmd_e370>(#apath.c#L370="srp="sref">ETH_+coeOVS_SAMPLE_ATTXOVS_SAMPLE_AapX 368    6s int coobabilitref="net/opo(erra6tr" c6ass="srPTR_ER>e="srp="sref">ETH_+co41ref="+code=tp" clsf_uctdeddatapath.c#L370" id="L370" class="line"9name="L419"> 408    6 ref="net9penvs93="+code=flow_tabl5" cath.6#L31363skb" clIS_ER>e="srp="sref">ETH_+co41ref="+code=tp" clsf_uctdeddrrapath.c#L370" id="L370" class="line"9name="L369"> 408    6         9="+co93 -ss65"sref">type ">coo_freeeuct key *coo_freeeuct lasserrapath.c#L370" id="L370" class="line"9n8me="L419"> 408    6         9="+co938ode=upcall_info"6clauh/d69" id67f="_reaETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41ref="+code=tp" classsf_uctde="unla+code=keuct41ref="+code=tp" clsf_uctdeddatapath.c#L370" id="L370" class="line"9name="L419"> 379    6    373stat6   if ( 408    6         9 ETH_de=de=k"L41/openvswitch/datade=kass="sref">ETH_de=haskey *(hask="srpe =clasde=kehas =  /a>(ddatapath.c#L370" id="L370" class="line"9name="L379"> 408    6         9penvs942upcall" class="s6clauh/d69" id67f="md_e370>(tbloinsea>)
ef="+code=htomd_e370>(tbloinsea>="srp="sref">ETH_+cota> =  =a>tc c="sref">ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"9name="L379"> 368    6rsref">ET9="+co94itch/datapath.c#L524" i52L394" class="line"9name="L379"> 408    6   if (!<9 href94itch/datapath.c#L675"unla+code=keuctrepl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="L370>(" clbuildow_key *href=" clbuildow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datade=aath.c#L370" ietdpa>"L41/openvswitch/das=flow6key" 6lassw_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"9name="L419witch/datapath6         9  *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasdatapath.c#L524" i52L394" class="line"9name="L419"> 408    6 ref="net9 goto94="+code=flow_tabl5" cnfo"6claaaaaaaaaaaaaaaaaaaaaaaaaflow6key" 6lassref.FLOW>CMD_NEWTTXCMD_NEW/a>(ddatapath.c#L370" id="L370" class="line"9name="L369"> 368    6   if ( 408    6         9penvs948ode=upcall_info"6claurn 0;
 379    6    379    6         9     95       0,  * 379    6         9="+co95ref="net/openvswi5ch/da59L372" class="line"9name="L409"> 408    6ref="net/9penvs952upcall" class="s6claurn 0;
 368    6    408    6   if (!<9="+co954 hreurn 0;
 408    6rref="net9penvs95tch/durn 0;
 368    6r  }
 408    6 ef="net/9 (errapath.c#L370" id=EXIST>( 379    6    *ETH_de=

ETH_de=cm41ref="+code=tp"cm4ype" =class="sref">nla_ref.FLOW>CMD_NEWTTXCMD_NEW/a>(seedatapath.c#L500" i59L390" class="line"9name="L409"> 408    6ref="net/9penvs96       0, ETH_de=ETH_de=href="+code=tp" clashref=/a>(seh.6#L31363skb" clNLM_F_CREATE"+code=tp" clasNLM_F_CREATE/a>(s|shlass="sref">deNLM_F_EXCL"+code=tp" clasNLM_F_EXCLwhdeddrrapath.c#L370" id="L370" class="line"9name="L379"> 361    6r  type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"9name="L409"> 408    6ref="net/9penvs96code=rem" class="6ref">61L363" class="line"9name="L409"> 408    6r   368    6ref="net/9penvs96itch/datapath.c#L675"unla+code=keuctoldo41ref="+code=tp" cloldo41relass=rrapath.c#L370" i_readeataeatn="ssh_pectL41ref="+code=tp"_readeataeatn="ssh_pectL4="srp="sref">ETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41ref="+code=tp" classsf_uctde=de=flow_tabl6" cla67> = < class="line"9name="L409"> 408    6r   408    6rref="net9penvs96="+code=flow_tabl5" cunla+code=keuct41re_clasde=kemeta 379efrc1re_clasdlass=rrapath.c#L370" ieOVS_SAMPLE_ATTXOVS_SAMPLE_AapX 397stat6r  }
edatapath.c#L500" i59L390" class="line"9name="L409"> 418
ETH_de=capath.ca> =  ctde !"shlass="sref">dehre_a> =  ="srp="sref">ETH_+co41re_clasde=kemeta 379efrc1re_clasdlass) ||datapath.c#L500" i59L390" class="line"9name="L379"> 418
ETH_+comemcmpa>"L41/openvswimemcmp="srp="sref">ETH_+comldo41ref="+code=tp" cloldo41relass=kass="sref">ETH_de=capath.= ETH_+co41re_clasde=kemeta 379efrc1re_clasdlass)=de=flow_tabl6" cla67> = < class="line"9name="L399"> 390    6href="net9openv97       0, ETH_de=capath.ca> =  ctde)ddl" id_ href="+"srefL401 =o" class="line"9name="L379"> 408    6ref="net/9penvs97=upcall" class="sss="s="s6claacti65" id60skb" class="slow_key *(errapath.c#L370" id="L370" class="line"9name="L409"> 408    6 class="c9mment97code=rem" class="6ref">61L363" class="line"9name="L409"> 418
(=rrapath.c#L370" id="L370>(#apath.c#L37041ref="+code=tpmd_e370>(#apath.c#L370="srp="sref">ETH_+coe1re_clasde=kemeta 379efrc1re_clasdlass)errapath.c#L370" id="L370" class="line"9name="L379"> 368    6href="net9openv97itch/datapath.c#L675" class="ode=6INVAL61mcoobabilitref="net/opo(erra6tr" c6ass="srPTR_ER>e="srp="sref">ETH_+conek_41ref="+code=tp" clnek_41re/a>()errapath.c#L370" id="L370" class="line"9name="L409"> 418
e="srp="sref">ETH_+conek_41ref="+code=tp" clnek_41re/a>()drrapath.c#L370" id="L370" class="line"9name="L409"> 422    6hef="net/9type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"9name="L369"> 408    6r  }
 408    6 ef="net/9 href978ode=upcall_info"6clatabl5" cuh/d69" id67f="_reaETH_+code=k"L41/openvswitch/datade=kass="sref">ETH_de=k"L41ref="+code=tp" classsf_uctde="unla+code=keuctnek_41ref="+code=tp" clnek_41re/a>()errapath.c#L370" id="L370" class="line"9name="L379"> 370}
ETH_+comldo41ref="+code=tp" cloldo41relass)errapath.c#L370" id="L370" class="line"9name="L429"> 422    5   if (!<9 href98       0,  361    5         9 retu98ref="net/openvswi5ch/da59L372" class="line"9name="L409"> 368    5ref="net/9penvs982upcall" class="s6claunla+code=keuctrepl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="L370>(" clbuildow_key *href=" clbuildow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datade=aath.c#L370" ietdpa>"L41/openvswitch/das=flow6key" 6lassw_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"9name="L429"> 422    5    *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasaflow6key" 6lassref.FLOW>CMD_NEWTTXCMD_NEW/a>(ddatapath.c#L370" id="L370" class="line"9name="L379"> 424
 424
 422    5   struct9 retu98="+code=flow_tabl5" cath.6#L31363skb" cleOVS_SCLEA>eOVS_SCLEA>apX 368    5ref="net/9penvs98 -apath.c#L370" ispin_otoa_bkey *ETH_de=otoa1ref="+code=tp"otoa/a>(ddatapath.c#L370" id="L370" class="line"9name="L409"> 418
ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"9name="L419"> 379    5    *ETH_de=otoa1ref="+code=tp"otoa/a>(ddatapath.c#L370" id="L370" class="line"9name="L399"> 392}
 424
 37261L363" class="line"9name="L369"> 368    5ref="net/9penvs99itch/datapathath.6lass=67class="sIS_ER>e="srp="sref">ETH_+corepl)
ef="+code=htonrepl)tade)drrapath.c#L370" id="L370" class="line"9name="L409"> 407    5c int ETH_de=

ETH_+corepl)
ef="+code=htonrepl)tadesaflow6key" 6lass

ETH_+cow_key * *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"9name="L409"> 392}
href=multicast_grou4err".flow6key" 6lassw41ref="+code=tp"i4ref=sshlass="sref">dew_key *ETH_de= 392}
ETH_de=GFPSAMRNEL=  392}
 392}
ETH_+cow_it_ne"+code=tp" classw_it_ne"err".flow6key" 6lass

 424
href=multicast_grou4err".flow6key" 6lassw41ref="+code=tp"i4ref=sshlass="sref">dePTR_ER>e="srp="sref">ETH_+corepl)
ef="+code=htonrepl)tade)derrapath.c#L370" id="L370" class="line"10name="L3910name24
10naactions" clalow_key0err/pre>
do 5  ="L3c7/74/8bb734772a8b81f48e669352a0728db5a0c3_3/10nam>rapath.c#L370" id="L370" class="line"10n1me="L3910n> 424
 >10nref="net/openvswi5ch/da59L372" class="line"10n2me="L3910n> 372 >10ncode=sref">type ">coo_freeeuct key *coo_freeeuct lass:net/openvswi5ch/da59L372" class="line"10n3me="L3910n> 368    5ref="net/10n> >10n -ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"10n4me="L3910n> 407    5c int  >10n4ode=sref">type ">coobabilitref="net/opo(:net/openvswi5ch/da59L372" class="line"10n5me="L3910n> 392}
 >10n5actions" clalow_keysref">type ">coobabilitref="net/opo(errapath.c#L370" id="L370" class="line"10n6me="L3910n> 392}
 >10n="+co     const s5ruct 5a href" class="line"10n7me="L3910n> 392}
 >10n8ode=f="+code=nla6tr" c6ass="sref">href=" clge"+code=tp" classd="Leullo" clge"ch/dpsamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 418
 >10">actions" clasamp6 clas607kb" classhre> *ETH_+k_eactw_key *ETH_de=clasde=kemeta 379efrclasd="srerrapath.c#L370" id="L370" class="line"10"1me="L3910"> 370}
 >10"/openvswitch/bass="sref">ETH_+kba>)upcd *actw_key *ETH_de=u"Lrhdopenvswitch/datau"Lrhdo="srerrapath.c#L370" id="L370" class="line"10"2me="L3910"> 418
 >10"2openvswitch/bass="sref">ETH_+kba>)=keuct dek"L41ref="+code=tp" classerrapath.c#L370" id="L370" class="line"10"3me="L3910"> 363    6         10"> >10" - *ETH_+k_repl)
ef="+code=htonrepl)tadeerrapath.c#L370" id="L370" class="line"10"4me="L3910"> 418
 >10"4- *ETH_+code=k"L41/openvswitch/datadeerrapath.c#L370" id="L370" class="line"10"5me="L3910"> 418
 >10"=err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"10"6me="L3910"> 418
 >10"6err" class="aspacket_cmd_executd"seullota> =  =a>tch/datapath.c#L418ta> =  =a>tcerrapath.c#L370" id="L370" class="line"10"7me="L3910"> 368    6         10"> >10"code=upcall_ic" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"10"8me="L3910"> 370}
 >10"8ode=upcall_ic" c6ass="6ref">att" cca> =  /a>(errapath.c#L370" id="L370" class="line"10"9me="L3910"> 379    6    >10"itch/datapath.c#L500" i59L390" class="line"102ame="L3910"> 370}
 >10">tch/datapathath.6lass=67class="seOVS_SAMPLE_ATTXOVS_SAMPapX 408    6         10"> >10"=upcall" class="sss="low_keyapath.c#L370" id=INVAL= (errapath.c#L370" id="L370" class="line"10"2me="L3910"> 370}
 >10"/* Called with ge6l_mut67opeearf="+code=tp" clear="srerra6tr" c6ass="sref">href=froma>(clasde=kemeta 379efrom_ href=froma>(clasdch/dpe =clasde=kehas =clasde=kehas =  /a>(sk6_dev"66class="eOVS_SAMPLE_ATTXOVS_SAMPapX 368    6         10"> >10"itch/datapathath.h ge6l_mut67opeearf="+code=tp" clear="srdrrapath.c#L370" id="L370" class="line"10"4me="L3910"> 370}
 >10"itch/datapath.c#L675"low_keysref">type ">cf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1025me="L3910"> 408    6 5 int  >10"="+code=flow_tabl6" cla67> = < class="line"10"6me="L3910"> 422    6href="net10"> >10"6* Called with ge6l_mut67ope"L41/openvswitch/da>(d"h/datapath.c#L4dp"L4penvswitch/data

p"L4="srp="sref">ETH_+coupcd""L41lt;  408    6         10"> >10"7tch/datapathath.6lass=67class="sref">e 388    6         10"> >10"8ode=upcall_info"6clalow_keyapath.c#L370" id=NODEV>((errapath.c#L370" id="L370" class="line"10"9me="L3910"> 408    6    >10"itch/datapath.c#L500" i59L390" class="line"103ame="L3910"> 408    6   } else10"> >10">* Called with ge6l_mut67opeta> =  =a>tch(d"h/datapath.c#L4d *ETH_+coref">eETH_de=ta> =  =a>tcddatapath.c#L370" id="L370" class="line"10"1me="L3910"> 361    6         10"> >10"1* Called with ge6l_mut67opede=k"L41/openvswitch/datade=rrapath.c#L370" id="L370>(tblootoku41>(ETH_+cota> =  =a>tc ce =clasde=kehas =  /a>(ddatapath.c#L370" id="L370" class="line"10"2me="L3910"> 373stat6         10"> >10"2tch/datapathath.6lass=67class="sde=k"L41/openvswitch/datadedatapath.c#L370" id="L370" class="line"10"3me="L3910"> 373stat6         10"> >10"itch/datapath.c#L624"low_keyapath.c#L370" id=NOENT>(act) &" class="line"10"4me="L3910"> 373stat6s="line" 10"> >10"=ovs_flow_to_nlat6rs" c65id="L313" class="l10"5me="L3910"> 368    6s int  >10"5* Called with ge6l_mut67operepl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="L370>(" clbuildow_key *href=" clbuildow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datade=aath.c#L370" ietdpa>"L41/openvswitch/das=flow6key" 6lassw_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"10"6me="L3910"> 408    6 ref="net10"> >10"="+code=flow_tabl5" cnfo"6claaaaaaaaaaaaaaaaaflow6key" 6lassw_key *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasaflow6key" 6lassref.FLOW>CMD_NEWTTXCMD_NEW/a>(ddatapath.c#L370" id="L370" class="line"10"7me="L3910"> 408    6         10"> >10"7tch/datapathath.flow6key" 6lassIS_ER>e="srp="sref">ETH_+corepl)
ef="+code=htonrepl)tade)drrapath.c#L370" id="L370" class="line"10"8me="L3910"> 408    6         10"> >10"8ode=upcall_info"6clalow_keyhlass="sref">dePTR_ER>e="srp="sref">ETH_+corepl)
ef="+code=htonrepl)tade)datapath.c#L370" id="L370" class="line"10"9me="L3910"> 379    6    >10"itch/datapath.c#L500" i59L390" class="line"104ame="L3910"> 373stat6   if ( >10">actions" clalow_keysref">type 

repl)
ef="+code=hton

repl)="srp="sref">ETH_+corepl)
ef="+code=htonrepl)tades=flow6key" 6lassw_key * 408    6         10"> >10"1"+co     const s5ruct 5a href" class="line"1042me="L3910"> 408    6         10"> >10"code=rem" class="6ref">61L363" class="line"10"3me="L3910"> 368    6rsref">ET10"> >10"3ode=f="+code=nla6tr" c6ass="sref">href=" cldely *href=" cldelch/dpsamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 408    6   if (!<10"> >10"4acti" id_ href="+"srefL401 =o" class="line"1045me="L3910witch/datapath6         10wit>10"=err" class="aspacket_cmd_executd"shre> *ETH_+k_eactw_key *ETH_de=clasde=kemeta 379efrclasd="srerrapath.c#L370" id="L370" class="line"1046me="L3910"> 408    6 ref="net10"> >10"6err" class="aspacket_cmd_executd"supcd *actw_key *ETH_de=u"Lrhdopenvswitch/datau"Lrhdo="srerrapath.c#L370" id="L370" class="line"1047me="L3910"> 368    6   if ( >10"7err" class="aspacket_cmd_executd"s=keuct dek"L41ref="+code=tp" classerrapath.c#L370" id="L370" class="line"1048me="L3910"> 408    6         10"> >10"8err" class="aspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)tadeerrapath.c#L370" id="L370" class="line"1049me="L3910"> 379    6    >10"9err" class="aspacket_cmd_executd"s=keuct key *ETH_+code=k"L41/openvswitch/datadeerrapath.c#L370" id="L370" class="line"105ame="L3910"> 379    6         10"> >10">err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1051me="L3910"> 379    6         10"> >10"/openvswitch/bass="sref">ETH_+kba>)eullota> =  =a>tch/datapath.c#L418ta> =  =a>tcerrapath.c#L370" id="L370" class="line"1052me="L3910"> 408    6ref="net/10"> >10"2tch/datapatha" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1053me="L3910"> 368    6    >10"3tch/datapatha" c6ass="6ref">att" cca> =  /a>(errapath.c#L370" id="L370" class="line"1054me="L3910"> 408    6   if (!<10"> >10"=ovs_flow_to_nlat6rs" c65id="L313" class="l1055me="L3910witch/datapath6   10"=err" class="ath.6lass=67class="seOVS_SAMPLE_ATTXOVS_SAMPapX 408    6rref="net10"> >10"="+code=flow_tabl5" clow_keysref">type flush"+codde=kemeta 379efrflush"+codd="srp="sref">ETH_+coupcd""L41lt;  368    6r  }
 >10"="+code=datapath"6class67"srearf="+code=tp" clear="srerra6tr" c6ass="sref">href=froma>(clasde=kemeta 379efrom_ href=froma>(clasdch/dpe =clasde=kehas =clasde=kehas =  /a>(sk6_dev"66class="eOVS_SAMPLE_ATTXOVS_SAMPapX 408    6 ef="net/10"> >10"8err" class="ath.h ge6l_mut67opeearf="+code=tp" clear="srdrrapath.c#L370" id="L370" class="line"1059me="L3910"> 379    6    >10"=actions" claaaaaaaaalow_keysref">type ">cf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"106ame="L3910"> 408    6ref="net/10"> >10">ovs_flow_to_nlat6rs" c65id="L313" class="l1061me="L3910"> 361    6r   >10"1* Called with ge6l_mut67ope"L41/openvswitch/da>(d"h/datapath.c#L4dp"L4penvswitch/data

p"L4="srp="sref">ETH_+coupcd""L41lt;  408    6ref="net/10"> >10"2tch/datapathath.6lass=67class="sref">e 408    6r   >10"itch/datapath.c#L624"low_keyapath.c#L370" id=NODEV>((errapath.c#L370" id="L370" class="line"1064me="L3910"> 368    6ref="net/10"> >10"=ovs_flow_to_nlat6rs" c65id="L313" class="l1065me="L3910"> 408    6r   >10"5* Called with ge6l_mut67opeta> =  =a>tch(d"h/datapath.c#L4d *ETH_+coref">eETH_de=ta> =  =a>tcddatapath.c#L370" id="L370" class="line"1066me="L3910"> 408    6rref="net10"> >10"6* Called with ge6l_mut67opede=k"L41/openvswitch/datade=rrapath.c#L370" id="L370>(tblootoku41>(ETH_+cota> =  =a>tc ce =clasde=kehas =  /a>(ddatapath.c#L370" id="L370" class="line"1067me="L3910"> 397stat6r  }
 >10"7tch/datapathath.6lass=67class="sde=k"L41/openvswitch/datadedatapath.c#L370" id="L370" class="line"1068me="L3910"> 418
 >10"8ode=upcall_info"6clalow_keyapath.c#L370" id=NOENT>(act) &" class="line"1069me="L3910"> 418
 >10"itch/datapath.c#L500" i59L390" class="line"107ame="L3910"> 390    6href="net10"> >10">* Called with ge6l_mut67operepl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="L370>(" cl#L370ow_key *href=" cl#L370ow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"1071me="L3910"> 408    6ref="net/10"> >10"1tch/datapathath.6lass=67class="srepl)
ef="+code=htonrepl)tade)atapath.c#L370" id="L370" class="line"1072me="L3910"> 408    6 class="c10"> >10"2upcall" class="s6clalow_keyapath.c#L370" id=NOMEM>(act) &" class="line"1073me="L3910"> 418
 >10"itch/datapath.c#L524" i52L394" class="line"10"4me="L3910"> 368    6href="net10"> >10"4* Called with ge6l_mut67opemd_e370>(tbloremov= ETH_+cota> =  =a>tc c="sref">ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"1075me="L3910"> 418
 >10"="+code=flow_tabl6" cla67> = < class="line"1076me="L3910"> 422    6hef="net/10"> >10"6* Called with ge6l_mut67opeearf="+code=tp" clear="srerra6tr" c6ass="sref">href=" clfillow_key *href=" clfillow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datade=aath.c#L370" ietdpa>"L41/openvswitch/das=flow6key" 6lassrepl)
ef="+code=htonrepl)tades=flow6key" 6lassw_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"1077me="L3910"> 408    6r  }
 >10" ->>>>>>>>>>>>>flow6key" 6lassw_key *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasa0saflow6key" 6lassref.FLOW>CMD_DEL= CMD_DELtadeddatapath.c#L370" id="L370" class="line"1078me="L3910"> 408    6 ef="net/10"> >10"8* Called with ge6l_mut67opeBUG_ON= ETH_+coearf="+code=tp" clear="sre< 0ddatapath.c#L370" id="L370" class="line"1079me="L3910"> 370}
 >10"itch/datapath.c#L500" i59L390" class="line"108ame="L3910"> 422    5   if (!<10"> >10">* Called with ge6l_mut67opemd_e370>(dtaearL4_freey *href=dtaearL4_freech/dp="sref">ETH_+code=k"L41/openvswitch/datadeddatapath.c#L370" id="L370" class="line"1081me="L3910"> 361    5         10"> >10"ref="net/openvswi5ch/da59L372" class="line"1082me="L3910"> 368    5ref="net/10"> >10"/* Called with ge6l_mut67ope

ETH_+corepl)
ef="+code=htonrepl)tadesaflow6key" 6lass

ETH_+cow_key * *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"1083me="L3910"> 422    5    >10"itch/datapath.c#L624"ef67h ge6l_mut67opemd_edp>href=multicast_grou41>(dew_key *ETH_de=ETH_de=GFPSAMRNEL=  424
 >10"4* Called witlow_key0errapath.c#L370" id="L370" class="line"10"5me="L3910"> 424
 >10"="+co     const s5ruct 5a href" class="line"1086me="L3910"> 422    5   struct10"> >10"6ef="net/openvswi5ch/da59L372" class="line"1087me="L3910"> 368    5ref="net/10"> >10" -href=" cldumpa>"L41/openvswief">href=" cldump="srpsamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)net
ETH_+k_cff"L41/openvswitcbtade)atapath.c#L370" id="L370" class="line"1088me="L3910"> 418
 >10"8* Ca" id_ href="+"srefL401 =o" class="line"1089me="L3910"> 379    5    >10"9err" class="aspacket_cmd_executd"supcd *act

dlas= dlas="srp="sref">ETH_+codlas= dlas="srp="sref">ETH_+cocff"L41/openvswitcbtade=kass="sref">ETH_de= 392}
 >10">err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1091me="L3910"> 424
 >10"/openvswitch/bass="sref">ETH_+kba>)eullota> =  =a>tch/datapath.c#L418ta> =  =a>tcerrapath.c#L370" id="L370" class="line"1092me="L3910"> 372 >10"code=rem" class="6ref">61L363" class="line"1093me="L3910"> 368    5ref="net/10"> >10" -(d"h/datapath.c#L4dp"L4penvswitch/data

p"L4="srp="sref">ETH_+coupcd""L41lt;  407    5c int  >10"4* Called witath.6lass=67class="sref">e 392}
 >10"=err" class="s="s6clalow_keyapath.c#L370" id=NODEV>((errapath.c#L370" id="L370" class="line"1096me="L3910"> 392}
 >10"6ef="net/openvswi5ch/da59L372" class="line"1097me="L3910"> 392}
 >10"="+code=datapath"6class67"srta> =  =a>tch(d"h/datapath.c#L4d *ETH_+coref">eETH_de=ta> =  =a>tcddatapath.c#L370" id="L370" class="line"1098me="L3910"> 392}
 >10"8ef="net/openvswi5ch/da59L372" class="line"1099me="L3910"> 424
 >10"9err" class="for (;;dl" id_ href="+"srefL401 =o" class="line"11name="L3911name24
11naactions" clavswitch/bass="sref">ETH_+kba>)=keuct key *ETH_+code=k"L41/openvswitch/datadeerrapath.c#L370" id="L370" class="line"11n1me="L3911n> 424
 >110=upcall" class="sss="="sref">ETH_de=u"> 373sh/datau"2tch/d="sref">ETH_de=bucke"+code=tp" classbucke"uffasa="sref">ETH_de=objt;  >110code=rem" class="6ref">61L363" class="line"11n3me="L3911n> 368    5ref="net/11n> >110itch/datapath.c#L624"="sref">ETH_de=bucke"+code=tp" classbucke"uffah(d"h/datapath.c#Lcff"L41/openvswitcbtade=kass="sref">ETH_de=arf="+code=tp" clasarf=tade[0/datapath.c#L370" id="L370" class="line"1104me="L3911n> 407    5c int  >110itch/datapath.c#L675"unla+code=keuctobjt; ETH_de=arf="+code=tp" clasarf=tade[1/datapath.c#L370" id="L370" class="line"1105me="L3911n> 392}
 >110=err" class="s="s6clah ge6l_mut67opede=k"L41/openvswitch/datade=rrapath.c#L370" id="L370>(tblonex"+code=tp" classd="Leullotblonex"="srp="sref">ETH_+cota> =  =a>tc ce =clasde=kehas =clasde=kehas >110 -breakdatapath.c#L370" id="L370" class="line"11n8me="L3911n> 392}
href=" clfillow_key *href=" clfillow_kech/dp="sref">ETH_+code=k"L41/openvswitch/datade=aath.c#L370" ietdpa>"L41/openvswitch/das=flow6key" 6lassbuff"L41/openvswitch/datasnet/openvswi5ch/da59L372" class="line"111ame="L3911"> 418
 >111aactions" clavswitch////////////////////////////flow6key" 6lassNETLINK_CBf"L41/openvswitNETLINK_CB="srp="sref">ETH_+cocff"L41/openvswitcbtade=kass="sref">ETH_de=buff"L41/openvswitch/data).flow6key" 6lasshp41ref="+code=tp"hp4h/dasdatapath.c#L524" i52L394" class="line"11"1me="L3911"> 370}
 >111=upcall" class="sss="s="s6cla///////////////////flow6key" 6lasscff"L41/openvswitcbtade=kass="sref">ETH_de=ETH_de=seqf"L41/openvswitseqh/das=flow6key" 6lassNLM_F_MULTIf"L41/openvswitNLM_F_MULTIh/dasdatapath.c#L524" i52L394" class="line"11"2me="L3911"> 418
 >1112upcall" class="s6clas="s6cla///////////////////flow6key" 6lassref.FLOW>CMD_NEWTTXCMD_NEW/a>(de< 0ddatapath.c#L524" i52L394" class="line"11"3me="L3911"> 363    6         11"> >111itch/datapath.c#L624"ef675"nfbreakdatapath.c#L370" id="L370" class="line"11"4me="L3911"> 418
 >111=ovs_flow_to_nlat6rs" c65id="L313" class="l11"5me="L3911"> 418
 >111=err" class="s="s6clah ge6l_mut67opecff"L41/openvswitcbtade=kass="sref">ETH_de=arf="+code=tp" clasarf=tade[0/=rrapath.c#L370" ibucke"+code=tp" classbucke"uffadatapath.c#L370" id="L370" class="line"11"6me="L3911"> 418
 >111="+code=flow_tabl5" cunla+code=keuctcff"L41/openvswitcbtade=kass="sref">ETH_de=arf="+code=tp" clasarf=tade[1/=rrapath.c#L370" idbjt;  368    6         11"> >11"code=upcall_i     const s5ruct 5a href" class="line"11"8me="L3911"> 370}
 >11"8ode=upcall_ilow_keysref">type buff"L41/openvswitch/data=kass="sref">ETH_de=o> =  /a>(errapath.c#L370" id="L370" class="line"11"9me="L3911"> 379    6    >11"itch/     const s5ruct 5a href" class="line"112ame="L3911"> 370}
 >112>ovs_flow_to_nlat6rs" c65id="L313" class="l11"1me="L3911"> 408    6         11"> >11"=upcaf="+codbass="sref">ETH_+kba>)

ETH_de=dp>href=

href=

 370}
 >11"/* Called wit{ .flow6key" 6lass" cf"L41/openvswitcmdtade=rrapath.c#L370" iref.FLOW>CMD_NEWTTXCMD_NEW/a>(sdatapath.c#L524" i52L394" class="line"11"3me="L3911"> 368    6         11"> >112itch/datapath.c.flow6key" 6lassflaf="+code=tp" clasflaf=tade=rrapath.c#L370" iGENL_ADMIN_PERM>( 370}
 >11"itch/datapath.c.flow6key" 6lassholic)
ef="+code=htonholic)tade=rrapath.c#L370" ihref=holic)
ef="+code=htonhref=holic)/a>(sdatapath.c#L524" i52L394" class="line"11"5me="L3911"> 408    6 5 int  >1125tch/datapath.c.flow6key" 6lassdoi"+code=tp" classdoi"tade=rrapath.c#L370" id="L370>(" clnek_or_se"y *href=" clnek_or_se"ovs_flow_to_nlat6rs" c65id="L313" class="l11"6me="L3911"> 422    6href="net11"> >11"6* Called wit}sdatapath.c#L524" i52L394" class="line"11"7me="L3911"> 408    6         11"> >11"7tch/datapath{ .flow6key" 6lass" cf"L41/openvswitcmdtade=rrapath.c#L370" iref.FLOW>CMD_DEL= CMD_DELtadesdatapath.c#L524" i52L394" class="line"11"8me="L3911"> 388    6         11"> >11"8ode=upcall_inf.flow6key" 6lassflaf="+code=tp" clasflaf=tade=rrapath.c#L370" iGENL_ADMIN_PERM>( 408    6    >1129tch/datapath.c.flow6key" 6lassholic)
ef="+code=htonholic)tade=rrapath.c#L370" ihref=holic)
ef="+code=htonhref=holic)/a>(sdatapath.c#L524" i52L394" class="line"113ame="L3911"> 408    6   } else11"> >1130tch/datapath.c.flow6key" 6lassdoi"+code=tp" classdoi"tade=rrapath.c#L370" id="L370>(" cldely *href=" cldelch/ddatapath.c#L524" i52L394" class="line"1131me="L3911"> 361    6         11"> >11"1* Called wit}sdatapath.c#L524" i52L394" class="line"11"2me="L3911"> 373stat6         11"> >113/* Called wit{ .flow6key" 6lass" cf"L41/openvswitcmdtade=rrapath.c#L370" iref.FLOW>CMD_GET>(CMD_GET/a>(sdatapath.c#L524" i52L394" class="line"1133me="L3911"> 373stat6         11"> >11"itch/datapath.c.flow6key" 6lassflaf="+code=tp" clasflaf=tade=rr0,e=flow_tabl5" curn 0;
 373stat6s="line" 11"> >113itch/datapath.c.flow6key" 6lassholic)
ef="+code=htonholic)tade=rrapath.c#L370" ihref=holic)
ef="+code=htonhref=holic)/a>(sdatapath.c#L524" i52L394" class="line"11"5me="L3911"> 368    6s int  >1135tch/datapath.c.flow6key" 6lassdoi"+code=tp" classdoi"tade=rrapath.c#L370" id="L370>(" clge"+code=tp" classd="Leullo" clge"ch/dsdatapath.c#L524" i52L394" class="line"11"6me="L3911"> 408    6 ref="net11"> >11"="+code=flow_ta.flow6key" 6lassdumpi"+code=tp" classdumpi"tade=rrapath.c#L370" id="L370>(" cldumpa>"L41/openvswief">href=" cldump="srdatapath.c#L524" i52L394" class="line"11"7me="L3911"> 408    6         11"> >11"7tch/datapath}sdatapath.c#L524" i52L394" class="line"11"8me="L3911"> 408    6         11"> >11"8ode=upcall_i{ .flow6key" 6lass" cf"L41/openvswitcmdtade=rrapath.c#L370" iref.FLOW>CMD_SET>(CMD_SET/a>(sdatapath.c#L524" i52L394" class="line"1139me="L3911"> 379    6    >1139tch/datapath.c.flow6key" 6lassflaf="+code=tp" clasflaf=tade=rrapath.c#L370" iGENL_ADMIN_PERM>( 373stat6   if ( >1140tch/datapath.c.flow6key" 6lassholic)
ef="+code=htonholic)tade=rrapath.c#L370" ihref=holic)
ef="+code=htonhref=holic)/a>(sdatapath.c#L524" i52L394" class="line"1141me="L3911"> 408    6         11"> >1141tch/datapath.c.flow6key" 6lassdoi"+code=tp" classdoi"tade=rrapath.c#L370" id="L370>(" clnek_or_se"y *href=" clnek_or_se"ovs_sdatapath.c#L524" i52L394" class="line"1142me="L3911"> 408    6         11"> >1142tch/datapath}sdatapath.c#L524" i52L394" class="line"11"3me="L3911"> 368    6rsref">ET11"> >11"3ode=}errapath.c#L370" id="L370" class="line"1144me="L3911"> 408    6   if (!<11"> >114=ovs_flow_to_nlat6rs" c65id="L313" class="l1145me="L3911witch/datapath6         11wit>11"=err"f="+codconst"aspacket_cmd_executd"shre=holic)
ef="+code=htonhre=holic)tch/d="sref">ETH_de=d3" clas=holic)
ef="+code=htond3" clas=holic)tade[apath.c#L370" iref.DP>OVS_SMAX>(OVS_SMAXtch/d+ 1/=rr" id_ href="+"srefL401 =o" class="line"1146me="L3911"> 408    6 ref="net11"> >11"6err" class="[apath.c#L370" iref.DP>OVS_SNAME>(OVS_SNAMEerr"/=rr"c.flow6key" 6lasstyp=  =  /a>(=rrapath.c#L370" iIFNAMSIZ= (=- 1h}sdatapath.c#L524" i52L394" class="line"11"7me="L3911"> 368    6   if ( >11"7err" class="[apath.c#L370" iref.DP>OVS_SUPCALL_PID>(OVS_SUPCALL_PIDerr"/=rr"c.flow6key" 6lasstyp=  373sh/dataNLA_U">tade=}sdatapath.c#L524" i52L394" class="line"11"8me="L3911"> 408    6         11"> >11"8err"}errapath.c#L370" id="L370" class="line"1149me="L3911"> 379    6    >114itch/datapath.c#L500" i59L390" class="line"115ame="L3911"> 379    6         11"> >11">err"f="+codbass="sref">ETH_+kba>)

ETH_de=dp>d3" clas=

 379    6         11"> >11"/openvswitch/.flow6key" 6lassw41ref="+code=tp"i4ref==rrapath.c#L370" iGENL_ID_GENERATE>( 408    6ref="net/11"> >11"2tch/datapath.flow6key" 6lasshdrsiz=  368    6    >11"3tch/datapath.flow6key" 6lass  408    6   if (!<11"> >1154tch/datapath.flow6key" 6lassvLr"io =  *OVS_SMAX>(OVS_SMAXtch/datapath.c#L524" i52L394" class="line"1156me="L3911"> 408    6rref="net11"> >11"="+co}errapath.c#L370" id="L370" class="line"1157me="L3911"> 368    6r  }
 >115code=flow_key" cl6ss="s62L388" class="line"1158me="L3911"> 408    6 ef="net/11"> >1158err"f="+codbass="sref">ETH_+kba>)

(ETH_de=md_edp>d3" clas=multicast_grou41>( 379    6    >11"=actions" cla.flow6key" 6lass  408    6ref="net/11"> >11">ovs_}errapath.c#L370" id="L370" class="line"1161me="L3911"> 361    6r   >116ref="net/openvswi5ch/da59L372" class="line"1162me="L3911"> 408    6ref="net/11"> >11"2tch/f="+code=nla6tr" c6ass="sref">dp>" clfillow_key *dp>" clfillow_ketch/psamp6 clas607kb" classclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daskbass="sref">ETH_+kba>)=eflow_key *ETH_+k_buff"L41/openvswitch/datasnet/openvswi5ch/da59L372" class="line"1163me="L3911"> 408    6r   >11"itch/datapath.c#L624"""""""""""""""""="sref">ETH_+k_u"> 373sh/datau"2tch/d="sref">ETH_de=hp41ref="+code=tp"hp4h/das"="sref">ETH_+k_u"> 373sh/datau"2tch/d="sref">ETH_de=seqf"L41/openvswitceqh/das=flow6key" 6lassu"> 373sh/datau"2tch/d="sref">ETH_de=flaf="+code=tp" clasflaf=tades=flow6key" 6lassu8 373sh/datau8tch/d="sref">ETH_de=" cf"L41/openvswitcmdtadeddatapath.c#L524" i52L394" class="line"1164me="L3911"> 368    6ref="net/11"> >1164acti" id_ href="+"srefL401 =o" class="line"1165me="L3911"> 408    6r   >11"5* Called witaspacket_cmd_executd"supcd * 408    6rref="net11"> >1166err" class="aspacket_cmd_executd"supcddp>f="+de=kemeta 379efrom_ dp>f="+dtch/d="sref">ETH_de=dp>f="+de=kemeta 379efrdp>f="+dtch/errapath.c#L370" id="L370" class="line"1167me="L3911"> 397stat6r  }
 >11"7tch/datapatha" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1168me="L3911"> 418
 >1168ef="net/openvswi5ch/da59L372" class="line"1169me="L3911"> 418
 >116=actions" clat_cmd_executd"supcd *act

pu"+code=tp" class

pu"tch/p="sref">ETH_+k_buff"L41/openvswitch/datasd="sref">ETH_de=hp41ref="+code=tp"hp4h/das"="sref">ETH_+k_seqf"L41/openvswitceqh/das=e =clasde=kehasd3" clas=

 390    6href="net11"> >117aactions" clavswitch////////////////////="sref">ETH_de=flaf="+code=tp" clasflaf=tades=flow6key" 6lass" cf"L41/openvswitcmdtadederrapath.c#L370" id="L370" class="line"1171me="L3911"> 408    6ref="net/11"> >11"1tch/datapathath.6lass=67class="supcd""L41lt;  408    6 class="c11"> >11"2upcall" class="s6clagotoc6ass="6ref">attearorf="+code=tp" clearor="srerrapath.c#L370" id="L370" class="line"1173me="L3911"> 418
 >11"itch/datapath.c#L524" i52L394" class="line"11"4me="L3911"> 368    6href="net11"> >11"4* Called with ge6l_mut67opemd_e""L41lt; (d"h/datapath.c#L4dp"L441ref="+code=tp" class4dp"L441ref="tch/p="sref">ETH_+k_ref">e 418
 >11"="+code=flow_tabl6" cla67> = < class="line"1176me="L3911"> 422    6hef="net/11"> >11"6* Called with ge6l_mut67opercu_read_looa1ref="+code=tp"rcu_read_looatch/pderrapath.c#L370" id="L370" class="line"1177me="L3911"> 408    6r  }
 >117="+code=datapath"6class67"srearf="+code=tp" clear="srerra6tr" c6ass="srhre=hut>f=ring
ef="+code=htonhre=hut>f=ringtch/p="sref">ETH_+k_buff"L41/openvswitch/datasd="sref">ETH_de=ref.DP>OVS_SNAME>(OVS_SNAMEerr"sa="sref">ETH_de=om_ dp> ETH_+k_ref">e 408    6 ef="net/11"> >11"8* Called with ge6l_mut67opercu_read_unlooa1ref="+code=tp"rcu_read_unlooatch/pderrapath.c#L370" id="L370" class="line"1179me="L3911"> 370}
 >1179tch/datapathath.ath"6class67"srearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"118ame="L3911"> 422    5   if (!<11"> >118aactions" clavswitch/gotoc6ass="6ref">atthre=hut>failur 
ef="+code=htonhre=hut>failur ="srerrapath.c#L370" id="L370" class="line"1181me="L3911"> 361    5         11"> >11"ref="net/openvswi5ch/da59L372" class="line"1182me="L3911"> 368    5ref="net/11"> >11"/* Called with ge6l_mut67ope

tddp>f="+de=kemeta 379efr

tddp>f="+dtch/p="sref">ETH_+k_ref">ef="+dtch/derrapath.c#L370" id="L370" class="line"1183me="L3911"> 422    5    >11"itch/datapathath.ath"6class67"srhre=hut
ef="+code=htonhre=huttch/p="sref">ETH_+k_buff"L41/openvswitch/datasd="sref">ETH_de=ref.DP>OVS_SSTATS>(OVS_SSTATSh/daskbiz=ofpsamp6 clas607kb" classupcddp>f="+de=kemeta 379efrom_ dp>f="+dtch/)s=e =clasde=kehasf="+de=kemeta 379efrdp>f="+dtch/d)rrapath.c#L370" id="L370" class="line"1184me="L3911"> 424
 >1184actions" clavswitch/gotoc6ass="6ref">atthre=hut>failur 
ef="+code=htonhre=hut>failur ="srerrapath.c#L370" id="L370" class="line"1185me="L3911"> 424
 >118="+code=flow_tabl6" cla67> = < class="line"1186me="L3911"> 422    5   struct11"> >1186* Called witlow_keysref">type 

encf"L41/openvswit

enctch/p="sref">ETH_+k_buff"L41/openvswitch/datasd="sref">ETH_de=upcd""L41lt;  368    5ref="net/11"> >118code=flow_key" cl6ss="s62L388" class="line"1188me="L3911"> 418
 >11"8* Ca6ass="6ref">atthre=hut>failur 
ef="+code=htonhre=hut>failur ="sr:flow_key" cl6ss="s62L388" class="line"1189me="L3911"> 379    5    >118=actions" clat_cmd_executd"s

cancely *canceltch/p="sref">ETH_+k_buff"L41/openvswitch/datasd="sref">ETH_de=upcd""L41lt;  392}
 >11">err"6ass="6ref">attearorf="+code=tp" clearor="sr:flow_key" cl6ss="s62L388" class="line"1191me="L3911"> 424
 >11"/openvswitch/low_keyapath.c#L370" id=MSGSIZE>( 372 >11"code=     const s5ruct 5a href" class="line"1193me="L3911"> 368    5ref="net/11"> >119itch/datapath.c#L524" i52L394" class="line"1194me="L3911"> 407    5c int  >11"4* Caf="+codbass="sref">ETH_+kba>)=eflow_key *ETH_+k_ef">dp>" clbuildow_key *dp>" clbuildow_ketch/psamp6 clas607kb" classclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/dask="sref">ETH_+k_u"> 373sh/datau"2tch/d="sref">ETH_de=hp41ref="+code=tp"hp4h/dasdatapath.c#L524" i52L394" class="line"1195me="L3911"> 392}
 >11"=err" class="s="s6claaaaaaaaaaaaaaaaaaaaaaaaaaaaaa="sref">ETH_+k_u"> 373sh/datau"2tch/d="sref">ETH_de=seqf"L41/openvswitceqh/das=flow6key" 6lassu8 373sh/datau8tch/d="sref">ETH_de=" cf"L41/openvswitcmdtadeddatapath.c#L524" i52L394" class="line"1196me="L3911"> 392}
 >11"6ef="" id_ href="+"srefL401 =o" class="line"1197me="L3911"> 392}
 >1197err" class="aspacket_cmd_executd"s=eflow_key *ETH_+k_buff"L41/openvswitch/dataerrapath.c#L370" id="L370" class="line"1198me="L3911"> 392}
 >1198err" class="a" c6ass="6ref">attlowvaly * 424
 >119itch/datapath.c#L500" i59L390" class="line"12name="L3912name24
120>* Called with ge6l_mut67opebuff"L41/openvswitch/dataerra6tr" c6ass="srhrmsg>nek"L41/openvswitchrmsg>nektch/p="sref">ETH_+k_NLMSG_DEFAULT_SIZE>( >1202upcall" class="s6clalow_keypath.c#L370" id=RR_PT>etch/papath.c#L370" id=NOMEM>( >120itch/datapath.c#L524" i52L394" class="line"1204me="L3912n> 407    5c int  >1204* Called with ge6l_mut67opelowvaly * *dp>" clfillow_ketch/p="sref">ETH_+co"L41/openvswitch/dask="sref">ETH_+k_buff"L41/openvswitch/datasd="sref">ETH_de=hp41ref="+code=tp"hp4h/das"="sref">ETH_+k_seqf"L41/openvswitceqh/das=0saflow6key" 6lass" cf"L41/openvswitcmdtadederrapath.c#L370" id="L370" class="line"1205me="L3912n> 392}
 >120=err" class="ath.ath"6class67"srlowvaly *ETH_+k_buff"L41/openvswitch/dataderrapath.c#L370" id="L370" class="line"1207me="L3912n> 392}
etch/path"6class67"srlowvaly * >1208err" class="     const s5ruct 5a href" class="line"12n9me="L3912n> 424
 >120=actions" clalow_keysref">type buff"L41/openvswitch/dataerrapath.c#L370" id="L370" class="line"121ame="L3912"> 418
 >121aacti     const s5ruct 5a href" class="line"12"1me="L3912"> 370}
 >121ref="net/openvswi5ch/da59L372" class="line"12"2me="L3912"> 418
 >1212upcafrn 0;
 363    6         12"> >121itch/f="+codbass="sref">ETH_+kba>)class="la>"L41/openvswitlass="le=kass="sref">ETH_+cootoku4_class="la>"L41/openvswiotoku4_class="ltch/psamp6 clas607kb" classupcd * 418
 >1214actions" clavswitch/////////////////////////aspacket_cmd_executd"shre> *OVS_SMAX>(OVS_SMAXtch/d+ 1/)rrapath.c#L370" id="L370" class="line"12"5me="L3912"> 418
 >121=err"" id_ href="+"srefL401 =o" class="line"12"6me="L3912"> 418
 >1216err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1217me="L3912"> 368    6         12"> >121code=flow_key" cl6ss="s62L388" class="line"12"8me="L3912"> 370}
 >12"8ode=upcall_iath.6lass=67class="seOVS_SNAME>(OVS_SNAMEerr"/)rrapath.c#L370" id="L370" class="line"12"9me="L3912"> 379    6    >121=actions" claaaaaaaaa="sref">ETH_+co"L41/openvswitch/da>(d"h/datapath.c#L4dp"L4penvswitch/data

p"L4="srp="sref">ETH_+coupcd""L41lt;  370}
 >122>* Called witelser" id_ href="+"srefL401 =o" class="line"12"1me="L3912"> 408    6         12"> >122=upcall" class="sss="aspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kadatapath.c#L370" id="L370" class="line"1222me="L3912"> 370}
 >122code=rem" class="6ref">61L363" class="line"12"3me="L3912"> 368    6         12"> >122itch/datapath.caaaaaa="sref">ETH_+corcu_read_looa1ref="+code=tp"rcu_read_looatch/pderrapath.c#L370" id="L370" class="line"1224me="L3912"> 370}
 >12"itch/datapath.caaaaaa="sref">ETH_+covport
ef="+code=htonvporte=kasrrapath.c#L370" id="Lvport_looat 
ef="+code=htonom_ vport_looat ="srp="sref">ETH_+cohre=clas
ef="+code=htonhre=clas="srp="sref">ETH_+coeOVS_SNAME>(OVS_SNAMEerr"/)derrapath.c#L370" id="L370" class="line"1225me="L3912"> 408    6 5 int  >1225tch/datapath.caaaaaa="sref">ETH_+co"L41/openvswitch/da>(d"h/datapath.c#Lvport
ef="+code=htonvporte=kaseed"h/datapath.c#Lvport
ef="+code=htonvporte=kah.c#L370" iclasheadeport_ney *(rrapath.c#L370" irefP_LOCAL= ?d"h/datapath.c#Lvport
ef="+code=htonvporte=kah.c#L370" iclasheade"L41/openvswitch/da>:rapath.c#L370" iNULL=  422    6href="net12"> >122="+code=flow_tabl5" cath"6class67"srrcu_read_unlooa1ref="+code=tp"rcu_read_unlooatch/pderrapath.c#L370" id="L370" class="line"12"7me="L3912"> 408    6         12"> >122code=upcall_i     const s5ruct 5a href" class="line"12"8me="L3912"> 388    6         12"> >1228ode=upcall_ilow_keysref">type "L41/openvswitch/da>?d"h/datapath.c#L"L41/openvswitch/da>:rapath.c#L370" i=RR_PT>etch/papath.c#L370" id=NODEV>((derrapath.c#L370" id="L370" class="line"12"9me="L3912"> 408    6    >122itch/     const s5ruct 5a href" class="line"123ame="L3912"> 408    6   } else12"> >123>ovs_flow_to_nlat6rs" c65id="L313" class="l1231me="L3912"> 361    6         12"> >123=upcaf="+code=nla6tr" c6ass="sref">dp>" clnek"L41/openvswitcef">dp>" clnektch/psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 373stat6         12"> >12"2tch/" id_ href="+"srefL401 =o" class="line"1233me="L3912"> 373stat6         12"> >12"itch/datapathaspacket_cmd_executd"shre> * *ETH_de=e> *="+code=tp" clasa> *=e=kadatapath.c#L370" id="L370" class="line"12"4me="L3912"> 373stat6s="line" 12"> >123itch/datapathaspacket_cmd_executd"svport_parm="+code=tp" clasvport_parm=tch/d="sref">ETH_de=harm="+code=tp" clasparm=tch/datapath.c#L370" id="L370" class="line"12"5me="L3912"> 368    6s int  >1235tch/datapathsamp6 clas607kb" class=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)tadedatapath.c#L370" id="L370" class="line"12"6me="L3912"> 408    6 ref="net12"> >1236err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"12"7me="L3912"> 408    6         12"> >1237err" class="aspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kadatapath.c#L370" id="L370" class="line"12"8me="L3912"> 408    6         12"> >1238err" class="a" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1239me="L3912"> 379    6    >123itch/datapath.c#L500" i59L390" class="line"124ame="L3912"> 373stat6   if ( >124>* Called with ge6l_mut67opeearf="+code=tp" clear="srerrapath.c#L370" id=INVAL=  408    6         12"> >1241tch/datapathath.6lass=67class="seOVS_SNAME>(OVS_SNAMEerr"/ || 6lass=67class="seOVS_SUPCALL_PID>(OVS_SUPCALL_PIDerr"/dflow_to_nlat6rs" c65id="L313" class="l1242me="L3912"> 408    6         12"> >1242upcall" class="s6clagotoc6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"12"3me="L3912"> 368    6rsref">ET12"> >124itch/datapath.c#L524" i52L394" class="line"1244me="L3912"> 408    6   if (!<12"> >1244* Called with ge6l_mut67opelt((errapath.c#L370" id="L370" class="line"1246me="L3912"> 408    6 ref="net12"> >12"6err" class="ath.6lass=67class="stry_modulelge"+code=tp" classtry_modulelge"="srp="sref">ETH_+coTHIS_MODULE>( 368    6   if ( >124 -attear_unlooa_rt(errapath.c#L370" id="L370" class="line"1248me="L3912"> 408    6         12"> >1248ef="net/openvswi5ch/da59L372" class="line"1249me="L3912"> 379    6    >124=actions" clat_cmd_executd"searf="+code=tp" clear="srerrapath.c#L370" id=NOMEM>( 379    6         12"> >125>* Called with ge6l_mut67ope"L41/openvswitch/da>(d"h/datapath.c#Lkzalloof"L41/openvswitkzallootch/psiz=ofps="sref">ETH_+co"L41/openvswitch/da)s=flow6key" 6lassGFPSAMRNEL=  379    6         12"> >1251tch/datapathath.h ge6l_mut67ope"L41/openvswitch/da>(rrapath.c#L370" iNULL=  408    6ref="net/12"> >1252upcall" class="s6clagotoc6ass="6ref">attear=hut>modulef="+code=tp" clear_hut>modulectdeerrapath.c#L370" id="L370" class="line"1253me="L3912"> 368    6    >12"3tch/datapath6ass="6ref">attINIT_LIST_HEAD>( =clasde=kehas"L41/openvswitch/dah.c#L370" iclasheadeport_lis"+code=tp" classport_lis"ctde)errapath.c#L370" id="L370" class="line"1254me="L3912"> 408    6   if (!<12"> >125=ovs_flow_to_nlat6rs" c65id="L313" class="l1255me="L3912witch/datapath6   12"=err" class="frn 0;
 =ce, which we may not have" id="L373" class="line"1256me="L3912"> 408    6rref="net12"> >1256* Called with ge6l_mut67opeearf="+code=tp" clear="srerrapath.c#L370" id=NOMEM>( 368    6r  }
 >125="+code=datapath"6class67"srrcu_ETH_+coref">eETH_de=ta> =  =a>tcsd="sref">ETH_de=upcdeullotbloalloof"L41/openvswitupcdeullotbloalloo="srp="sref">ETH_+coTBL_MIN_BUCKETS>( 408    6 ef="net/12"> >1258ode=upcall_iath.6lass=67class="sref">eETH_de=ta> =  =a>tcdrrapath.c#L370" id="L370" class="line"1259me="L3912"> 379    6    >125=actions" claaaaaaaaagotoc6ass="6ref">attear=free_ref">e 408    6ref="net/12"> >126>ovs_flow_to_nlat6rs" c65id="L313" class="l1261me="L3912"> 361    6r   >1261* Called with ge6l_mut67ope"L41/openvswitch/da=kass="sref">ETH_de=b="+d_percpukey * *f="+d_percpukey *f="+d_percpuctde)errapath.c#L370" id="L370" class="line"1262me="L3912"> 408    6ref="net/12"> >1262ode=upcall_iath.6lass=67class="sref">eETH_de=b="+d_percpukey * 408    6r   >12"itch/datapath.c#L624"h ge6l_mut67opeearf="+code=tp" clear="srerrapath.c#L370" id=NOMEM>( 368    6ref="net/12"> >1264actions" clavswitch/gotoc6ass="6ref">attear=desamoy_ta> =  =ctdeerrapath.c#L370" id="L370" class="line"1265me="L3912"> 408    6r   >12"5* Called wit     const s5ruct 5a href" class="line"1266me="L3912"> 408    6rref="net12"> >1266err"    const s5ruct 5a href" class="line"1267me="L3912"> 397stat6r  }
 >12"7tch/datapathfrn 0;
 418
 >1268* Called with ge6l_mut67opeharm="+code=tp" clasparm=tch/.flow6key" 6lass ETH_+coeOVS_SNAME>(OVS_SNAMEerr"/)errapath.c#L370" id="L370" class="line"1269me="L3912"> 418
 >126=actions" clat_cmd_executd"sharm="+code=tp" clasparm=tch/.flow6key" 6lasstyp=  390    6href="net12"> >127>* Called with ge6l_mut67opeharm="+code=tp" clasparm=tch/.flow6key" 6lassoptionde=kemeta 379efroptiondtade=rrapath.c#L370" iNULL=  408    6ref="net/12"> >1271* Called with ge6l_mut67opeharm="+code=tp" clasparm=tch/.flow6key" 6lass"L41/openvswitch/da>(d"h/datapath.c#L"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1272me="L3912"> 408    6 class="c12"> >12"2upcall" clash ge6l_mut67opeharm="+code=tp" clasparm=tch/.flow6key" 6lassport_ney *(rapath.c#L370" irefP_LOCAL=  418
 >1273tch/datapath6ass="6ref">attharm="+code=tp" clasparm=tch/.flow6key" 6lassupcall_hp41ref="+code=tp"upcall_hp4tade=rrapath.c#L370" ihre=

p"u"> 373sh/datahre=

p"u">="srp="sref">ETH_+coeOVS_SUPCALL_PID>(OVS_SUPCALL_PIDerr"/derrapath.c#L370" id="L370" class="line"1274me="L3912"> 368    6href="net12"> >127=ovs_flow_to_nlat6rs" c65id="L313" class="l1275me="L3912"> 418
 >1275* Called with ge6l_mut67opevport
ef="+code=htonvporte=kasrrapath.c#L370" inek_vport
ef="+code=htonnek_vporttch/pe =clasde=kehas 422    6hef="net/12"> >1276err" class="ath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+covport
ef="+code=htonvporte=ka)dr" id_ href="+"srefL401 =o" class="line"1277me="L3912"> 408    6r  }
 >127 -ETH_+covport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1278me="L3912"> 408    6 ef="net/12"> >1278-tcdrrapath.c#L370" id="L370" class="line"1279me="L3912"> 370}
 >127=actions" claaaaaaaaa.c#L624"h ge6l_mut67opeearf="+code=tp" clear="srerrapath.c#L370" id=EXIST>( 422    5   if (!<12"> >128>ovs_flow_to_nlat6rs" c65id="L313" class="l1281me="L3912"> 361    5         12"> >128=upcall" class="sss="gotoc6ass="6ref">attear=desamoy_percpukey * 368    5ref="net/12"> >12"/* Called wit     const s5ruct 5a href" class="line"1283me="L3912"> 422    5    >128itch/datapath.c#L524" i52L394" class="line"1284me="L3912"> 424
 >1284* Called with ge6l_mut67opelopl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="Ldp>" clbuildow_key *dp>" clbuildow_ketch/p"h/datapath.c#L"L41/openvswitch/dasd="sref">ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"1285me="L3912"> 424
 >128=err" class="s="s6claaaaaaaaaaaaaaaaaaaaaaa="sref">ETH_de=w_key *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasd="sref">ETH_de=ref.DP>CMD_NEWTTXCMD_NEWe=ka)errapath.c#L370" id="L370" class="line"1286me="L3912"> 422    5   struct12"> >1286* Called with ge6l_mut67opeearf="+code=tp" clear="srerrh ge6l_mut67opePS_SER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)errapath.c#L370" id="L370" class="line"1287me="L3912"> 368    5ref="net/12"> >1287err" class="ath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)drrapath.c#L370" id="L370" class="line"1288me="L3912"> 418
 >1288-attear=desamoy_looal_hort
ef="+code=htonear=desamoy_looal_horth/daerrapath.c#L370" id="L370" class="line"1289me="L3912"> 379    5    >128itch/datapath.c#L500" i59L390" class="line"129ame="L3912"> 392}
 >129>* Called with ge6l_mut67opelis"_add_tailf="+code=tp" cllis"_add_tailtch/pe =clasde=kehas"L41/openvswitch/dah.c#L370" iclasheadelis"_neadf="+code=tp" cllis"_neadh/dasde =clasde=kehas 424
 >1291* Called with ge6l_mut67opert 372 >129code=rem" class="6ref">61L363" class="line"1293me="L3912"> 368    5ref="net/12"> >1293tch/datapath6ass="6ref">att

ETH_+colopl)
ef="+code=htonrepl)tadesd="sref">ETH_de=

ETH_+cow_key *ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L524" i52L394" class="line"1294me="L3912"> 407    5c int  >1294actions" clavswitch/////apath.c#L370" id="Ldp>class="l=multicast_grou41>(ETH_de=w_key *ETH_de=nlhd* 392}
 >12"=err" class="s="s6claaaaa="sref">ETH_de=GFPSAMRNEL=  392}
 >1296* Called witlow_key0errapath.c#L370" id="L370" class="line"1297me="L3912"> 392}
 >129code=flow_key" cl6ss="s62L388" class="line"1298me="L3912"> 392}
 >1298* Ca6ass="6ref">attear=desamoy_looal_hort
ef="+code=htonear=desamoy_looal_horth/da:flow_key" cl6ss="s62L388" class="line"1299me="L3912"> 424
 >129=actions" clat_cmd_executd"supcddp>detach_hort
ef="+code=htonupcddp>detach_hort="srp="sref">ETH_+coltETH_+coref">eETH_de=hort="+code=tp" clasport=apatcode=ath.c#L403" idP_LOCAL= attear=desamoy_percpukey *ETH_+coref">eETH_de=b="+d_percpukey * >1302upca6ass="6ref">attear=desamoy_ta> =  =ctde:flow_key" cl6ss="s62L388" class="line"13n3me="L3913n> 368    5ref="net/13n> >1303tch/datapath6ass="6ref">attupcdeullotblodesamoy
ef="+code=htonupcdeullotblodesamoy="srp="sref">ETH_+co

ETH_+coref">eETH_de=ta> =  =a>tcdderrapath.c#L370" id="L370" class="line"13n4me="L3913n> 407    5c int  >1304* Ca6ass="6ref">attear=free_ref">eeETH_+coref">eattear=hut>modulef="+code=tp" clear_hut>modulectde:flow_key" cl6ss="s62L388" class="line"13n7me="L3913n> 392}
ETH_+coTHIS_MODULE>( >1308* Ca6ass="6ref">attear=unlooa_rt(:flow_key" cl6ss="s62L388" class="line"13n9me="L3913n> 424
 >130=actions" clat_cmd_executd"srt 418
 >131>err"6ass="6ref">attearf="+code=tp" clear="sr:flow_key" cl6ss="s62L388" class="line"13"1me="L3913"> 370}
 >131/openvswitch/low_key6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1312me="L3913"> 418
 >131code=     const s5ruct 5a href" class="line"13"3me="L3913"> 363    6         13"> >131itch/datapath.c#L524" i52L394" class="line"13"4me="L3913"> 418
 >1314* Caf="+code=nla6tr" c6ass="sref">dp>" cldely *dp>" cldeltch/psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 418
 >131=err"" id_ href="+"srefL401 =o" class="line"13"6me="L3913"> 418
 >1316err" class="aspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=ka,ss="sref">ETH_+conext_vport
ef="+code=htonnext_vport="srerrapath.c#L370" id="L370" class="line"1317me="L3913"> 368    6         13"> >1317err" class="aspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)tadedatapath.c#L370" id="L370" class="line"13"8me="L3913"> 370}
 >13"8ode=upcall_iaspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"13"9me="L3913"> 379    6    >131=actions" claa" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"132ame="L3913"> 370}
 >132>ovs_flow_to_nlat6rs" c65id="L313" class="l13"1me="L3913"> 408    6         13"> >1321* Called with ge6l_mut67opert 370}
 >1322upcall" clash ge6l_mut67ope"L41/openvswitch/da>(d"h/datapath.c#Lotoku4_class="la>"L41/openvswiotoku4_class="ltch/p="sref">ETH_de=w_key *ETH_de=userhd*ETH_de=w_key *ETH_de=e> *="+code=tp" clasa> *=e=kaderrapath.c#L370" id="L370" class="line"1323me="L3913"> 368    6         13"> >1323tch/datapath6ass="6ref">attearf="+code=tp" clear="srerrh ge6l_mut67opePS_SER>e="srp="sref">ETH_+coref">e 370}
 >13"itch/datapathath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+coref">e 408    6 5 int  >1325tch/datapath.caaaaaagotoc6ass="6ref">attexitounlooa1ref="+code=tp"exitounlooa="srerrapath.c#L370" id="L370" class="line"1326me="L3913"> 422    6href="net13"> >1326err"    const s5ruct 5a href" class="line"13"7me="L3913"> 408    6         13"> >132="+code=datapath"6class67"srropl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="Ldp>" clbuildow_key *dp>" clbuildow_ketch/p"h/datapath.c#L"L41/openvswitch/dasd="sref">ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L52ct 5a href" class="line"13"8me="L3913"> 388    6         13"> >1328-ETH_de=w_key *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasd="sref">ETH_de=ref.DP>CMD_DEL= CMD_DEL"+coderrapath.c#L370" id="L370" class="line"1329me="L3913"> 408    6    >132=actions" clat_cmd_executd"searf="+code=tp" clear="srerrh ge6l_mut67opePS_SER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)errapath.c#L370" id="L370" class="line"133ame="L3913"> 408    6   } else13"> >1330tch/datapathath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)drrapath.c#L370" id="L370" class="line"1331me="L3913"> 361    6         13"> >133=upcall" class="sss="gotoc6ass="6ref">attexitounlooa1ref="+code=tp"exitounlooa="srerrapath.c#L370" id="L370" class="line"1332me="L3913"> 373stat6         13"> >133code=rem" class="6ref">61L363" class="line"1333me="L3913"> 373stat6         13"> >1333tch/datapath6ass="6ref">attlis"_for_each_entry_safdf="+code=tp" cllis"_for_each_entry_safd="srp="sref">ETH_+covport
ef="+code=htonvporte=ka,s="sref">ETH_+conext_vport
ef="+code=htonnext_vport="srsde =clasde=kehaseETH_de=hort_lis"+code=tp" classport_lis"ctde,s="sref">ETH_+coneadf="+code=tp" clneadh/dadrrapath.c#L370" id="L370" class="line"1334me="L3913"> 373stat6s="line" 13"> >1334actions" clavswitch/ath.6ass="6ref">attvport
ef="+code=htonvporte=kah.c#L370" iclasheadeport_ney *!(rapath.c#L370" irefP_LOCAL=  368    6s int  >133=err" class="s="s6claaaaaaaaat_cmd_executd"supcddp>detach_hort
ef="+code=htonupcddp>detach_hort="srp="sref">ETH_+covport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"13"6me="L3913"> 408    6 ref="net13"> >1336err"    const s5ruct 5a href" class="line"13"7me="L3913"> 408    6         13"> >133="+code=datapath"6class67"srlis"_dely * =clasde=kehas"L41/openvswitch/dah.c#L370" iclasheadelis"_neadf="+code=tp" cllis"_neadh/da)errapath.c#L370" id="L370" class="line"13"8me="L3913"> 408    6         13"> >1338* Called with ge6l_mut67opeupcddp>detach_hort
ef="+code=htonupcddp>detach_hort="srp="sref">ETH_+coltETH_+coref">eETH_de=hort="+code=tp" clasport=apatcode=ath.c#L403" idP_LOCAL=  379    6    >133itch/datapath.c#L500" i59L390" class="line"134ame="L3913"> 373stat6   if ( >134>* Called withrn 0;
 408    6         13"> >1341tch/hrn 0;
 408    6         13"> >1342upcafrn 0;
 368    6rsref">ET13"> >134itch/frn 0;
 408    6   if (!<13"> >1344* Cafrn 0;
 408    6 ref="net13"> >1346err"    const s5ruct 5a href" class="line"1347me="L3913"> 368    6   if ( >134="+code=datapath"6class67"srcall_rcukey * *ETH_+codesamoy_dp>rcukey *rcuh/da)errapath.c#L370" id="L370" class="line"1348me="L3913"> 408    6         13"> >1348* Called with ge6l_mut67opemodulelhut
ef="+code=htonmodulelhut="srp="sref">ETH_+coTHIS_MODULE>( 379    6    >134itch/datapath.c#L500" i59L390" class="line"135ame="L3913"> 379    6         13"> >135>* Called with ge6l_mut67ope

ETH_+colopl)
ef="+code=htonrepl)tadesd="sref">ETH_de=

ETH_+cow_key *ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L52ct 5a href" class="line"1351me="L3913"> 379    6         13"> >135=upcall" class="sss=" with ge6l_mut67opeupcddp>dlass="l=multicast_grou41>(ETH_de=w_key *ETH_de=nlhd* 408    6ref="net/13"> >1352upcall" class="s6cla with ge6l_mut67opeGFPSAMRNEL=  368    6    >135itch/datapath.c#L524" i52L394" class="line"1354me="L3913"> 408    6   if (!<13"> >1354actions" clalow_key0errapath.c#L370" id="L370" class="line"1355me="L3913witch/datapath6   13"=err"rrapath.c#L370" id="L370" class="line"1356me="L3913"> 408    6rref="net13"> >135="+co6ass="6ref">attexitounlooa1ref="+code=tp"exitounlooa="sr:flow_key" cl6ss="s62L388" class="line"1357me="L3913"> 368    6r  }
 >135="+code=datapath"6class67"srrt 408    6 ef="net/13"> >1358ode=upcall_ilow_keysref">type earf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1359me="L3913"> 379    6    >135itch/     const s5ruct 5a href" class="line"136ame="L3913"> 408    6ref="net/13"> >136>ovs_flow_to_nlat6rs" c65id="L313" class="l1361me="L3913"> 361    6r   >136=upcaf="+code=nla6tr" c6ass="sref">dp>" clse"+code=tp" classef">dp>" clse"tch/psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 408    6ref="net/13"> >1362tch/" id_ href="+"srefL401 =o" class="line"1363me="L3913"> 408    6r   >136itch/datapathaspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)tadedatapath.c#L370" id="L370" class="line"1364me="L3913"> 368    6ref="net/13"> >1364actions" claaspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1365me="L3913"> 408    6r   >13"5* Called wita" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1366me="L3913"> 408    6rref="net13"> >1366err"    const s5ruct 5a href" class="line"1367me="L3913"> 397stat6r  }
 >136="+code=datapath"6class67"sr"L41/openvswitch/da>(d"h/datapath.c#Lotoku4_class="la>"L41/openvswiotoku4_class="ltch/p="sref">ETH_de=w_key *ETH_de=userhd*ETH_de=w_key *ETH_de=e> *="+code=tp" clasa> *=e=kaderrapath.c#L370" id="L370" class="line"1368me="L3913"> 418
 >1368ode=upcall_iath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+coref">e 418
 >136=actions" claaaaaaaaalow_keysref">type PS_SER>e="srp="sref">ETH_+coref">e 390    6href="net13"> >137>ovs_flow_to_nlat6rs" c65id="L313" class="l1371me="L3913"> 408    6ref="net/13"> >1371* Called with ge6l_mut67operopl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="Ldp>" clbuildow_key *dp>" clbuildow_ketch/p"h/datapath.c#L"L41/openvswitch/dasd="sref">ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L5rs" c65id="L313" class="l1372me="L3913"> 408    6 class="c13"> >1372upcall" class="s6cla wit" class="s6cla with ge6l_mut67opew_key *ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasd="sref">ETH_de=ref.DP>CMD_NEWTTXCMD_NEWe=ka)errapath.c#L370" id="L370" class="line"1373me="L3913"> 418
 >1373tch/datapathath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)dr" id_ href="+"srefL401 =o" class="line"1374me="L3913"> 368    6href="net13"> >137itch/datapath.caaaaaa="sref">ETH_+coearf="+code=tp" clear="srerrh ge6l_mut67opePS_SER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)errapath.c#L370" id="L370" class="line"1375me="L3913"> 418
 >137=err" class="s="s6cla="sref">ETH_+conetETH_de=w_itone"+code=tp" classw_itone"tade.flow6key" 6lass

 422    6hef="net/13"> >137="+code=flow_tabl5" c class="s="s6cla="sref">ETH_+coupcddp>dlass="l=multicast_grou41>(ETH_de=earf="+code=tp" clear="sr)errapath.c#L370" id="L370" class="line"1377me="L3913"> 408    6r  }
 >137 - 408    6 ef="net/13"> >1378- 370}
 >137itch/datapath.c#L500" i59L390" class="line"138ame="L3913"> 422    5   if (!<13"> >138>* Called with ge6l_mut67ope

ETH_+colopl)
ef="+code=htonrepl)tadesd="sref">ETH_de=

ETH_+cow_key *ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L5rs" c65id="L313" class="l1381me="L3913"> 361    5         13"> >138=upcall" class="sss="6cla="sref">ETH_+coupcddp>dlass="l=multicast_grou41>(ETH_de=w_key *ETH_de=nlhd* 368    5ref="net/13"> >1382upcall" class="s6cla with ge6l_mut67opeGFPSAMRNEL=  422    5    >138itch/datapath.c#L524" i52L394" class="line"1384me="L3913"> 424
 >1384actions" clalow_key0errapath.c#L370" id="L370" class="line"1385me="L3913"> 424
 >138=err"     const s5ruct 5a href" class="line"1386me="L3913"> 422    5   struct13"> >1386err"    const s5ruct 5a href" class="line"1387me="L3913"> 368    5ref="net/13"> >1387err"f="+code=nla6tr" c6ass="sref">dp>" clge"+code=tp" classef">dp>" clge"tch/psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 418
 >1388- 379    5    >138=actions" claaspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)tadedatapath.c#L370" id="L370" class="line"139ame="L3913"> 392}
 >139>* Called witaspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1391me="L3913"> 424
 >1391* Carrapath.c#L370" id="L370" class="line"1392me="L3913"> 372 >1392upcall" clash ge6l_mut67ope"L41/openvswitch/da>(d"h/datapath.c#Lotoku4_class="la>"L41/openvswiotoku4_class="ltch/p="sref">ETH_de=w_key *ETH_de=userhd*ETH_de=w_key *ETH_de=e> *="+code=tp" clasa> *=e=kaderrapath.c#L370" id="L370" class="line"1393me="L3913"> 368    5ref="net/13"> >1393tch/datapathath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+coref">e 407    5c int  >1394actions" clavswitch/low_keysref">type PS_SER>e="srp="sref">ETH_+coref">e 392}
 >139=err"rrapath.c#L370" id="L370" class="line"1396me="L3913"> 392}
 >1396* Called with ge6l_mut67operopl)
ef="+code=htonrepl)tade=rrapath.c#L370" id="Ldp>" clbuildow_key *dp>" clbuildow_ketch/p"h/datapath.c#L"L41/openvswitch/dasd="sref">ETH_de=w_key *ETH_de=snd_hp41ref="+code=tp"snd_hp4h/dasdatapath.c#L50" id="L370" class="line"1397me="L3913"> 392}
 >139 -ETH_de=snd_seqf"L41/openvswitcnd_seqh/dasd="sref">ETH_de=ref.DP>CMD_NEWTTXCMD_NEWe=ka)errapath.c#L370" id="L370" class="line"1398me="L3913"> 392}
 >1398ode=upcall_iath.6ass="6ref">attIS_ER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)drrapath.c#L370" id="L370" class="line"1399me="L3913"> 424
 >139=actions" claaaaaaaaalow_keysref">type PS_SER>e="srp="sref">ETH_+colopl)
ef="+code=htonrepl)tade)errapath.c#L370" id="L370" class="line"14name="L3914name24
140>ovs_flow_to_nlat6rs" c65id="L313" class="l14n1me="L3914n> 424
 >140/openvswitch/low_key6ass="6ref">att

ETH_+colopl)
ef="+code=htonrepl)tadesd="sref">ETH_de=w_key * >140code=     const s5ruct 5a href" class="line"14n3me="L3914n> 368    5ref="net/14n> >140itch/datapath.c#L524" i52L394" class="line"14n4me="L3914n> 407    5c int  >1404* Caf="+code=nla6tr" c6ass="sref">dp>" cldum41>( *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)netETH_+k_cff"L41/openvswitcbuffadflow_to_nlat6rs" c65id="L313" class="l14n5me="L3914n> 392}
 >140=err"" id_ href="+"srefL401 =o" class="line"14n6me="L3914n> 392}
 >1406err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"14n7me="L3914n> 392}
ETH_de=erg="+code=tp" clasarg=uffa[0]errapath.c#L370" id="L370" class="line"14n8me="L3914n> 392}
 418
 >141>* Called with ge6l_mut67opelis"_for_each_entrya>"L41/openvswiois"_for_each_entrytch/p"h/datapath.c#L"L41/openvswitch/dasde =clasde=kehasETH_de=lis"_neadf="+code=tp" cllis"_neadh/da)r" id_ href="+"srefL401 =o" class="line"14"1me="L3914"> 370}
 >141=upcall" class="sss="ath.6ass="6ref">attiy *"L41/openvswiski/tade=ee id_ href="+"srefL401 =o" class="line"14"2me="L3914"> 418
 >1412upcall" class="s6cla with ge6l_mut67opemd_edp>" clfillow_key *" clfillow_ketch/p"h/datapath.c#L"L41/openvswitch/dasd="sref">ETH_de=buff"L41/openvswitch/datask="sref">ETH_de=NETLINK_CBf"L41/openvswitNETLINK_CBtch/p"h/datapath.c#Lcff"L41/openvswitcbuffa=kass="sref">ETH_de=buff"L41/openvswitch/data).flow6key" 6lasspp41ref="+code=tp"hp4h/dasdatapath.c#L50" id="L370" class="line"14"3me="L3914"> 363    6         14"> >141itch/datapath.c#L624"INVVVVVVVVVVVVVVVVVVVVVVVh ge6l_mut67opecff"L41/openvswitcbuffa=kass="sref">ETH_de=nlla>"L41/openvswinlluffa=kass="sref">ETH_de=nlmsg_seqf"L41/openvswitnlmsg_seqdatask="sref">ETH_de=NLM_F_MULTIf"L41/openvswitNLM_F_MULTIh/dasdatapath.c#L50" id="L370" class="line"14"4me="L3914"> 418
 >1414actions" clavswitch/////VVVVVVVVVVVVVVVVVVVVVh ge6l_mut67operef.DP>CMD_NEWTTXCMD_NEWe=ka) < 0dflow_to_nlat6rs" c65id="L313" class="l14"5me="L3914"> 418
 >141=err" class="s="s6claaaaaaaaabreak> id_ href="+"srefL401 =o" class="line"14"6me="L3914"> 418
 >141="+code=flow_tabl5" c6ass="6ref">attiy * id_ href="+"srefL401 =o" class="line"14"7me="L3914"> 368    6         14"> >1417err" class="     const s5ruct 5a href" class="line"14"8me="L3914"> 370}
 >14"8ode=    const s5ruct 5a href" class="line"14"9me="L3914"> 379    6    >141=actions" clat_cmd_executd"scff"L41/openvswitcbuffa=kass="sref">ETH_de=erg="+code=tp" clasarg=uffa[0]=rrapath.c#L370" iiy * id_ href="+"srefL401 =o" class="line"142ame="L3914"> 370}
 >142>ovs_flow_to_nlat6rs" c65id="L313" class="l14"1me="L3914"> 408    6         14"> >142/openvswitch/low_key6ass="6ref">attbuff"L41/openvswitch/datah.c#L370" iclasheadelenf="+code=tp" cllentade> id_ href="+"srefL401 =o" class="line"1422me="L3914"> 370}
 >142code=     const s5ruct 5a href" class="line"1423me="L3914"> 368    6         14"> >142itch/datapath.c#L524" i52L394" class="line"1424me="L3914"> 370}
 >1424* Caf="+codbass="sref">ETH_+kba>)

d3" clas=

d3" clas=

 408    6 5 int  >1425tch/datapath{ .flow6key" 6lass" cf"L41/openvswitcm4tade=rrapath.c#L370" iref.DP>CMD_NEWTTXCMD_NEWe=kasdatapath.c#L50" id="L370" class="line"1426me="L3914"> 422    6href="net14"> >142="+code=flow_ta.flow6key" 6lassflag="+code=tp" clasflag=tade=rrapath.c#L370" iGENL_ADMIN_PERM>( 408    6         14"> >1427"+code=flow_ta.flow6key" 6lasspolicya>"L41/openvswipolicytade=rrapath.c#L370" id3" clas=policya>"L41/openvswid3" clas=policye=kasdatapath.c#L50" id="L370" class="line"1428me="L3914"> 388    6         14"> >1428- *" clnewtch/datapath.c#L524" i52L394" class="line"1429me="L3914"> 408    6    >142=actions" cla}sdatapath.c#L50" id="L370" class="line"143ame="L3914"> 408    6   } else14"> >1430tch/datapath{ .flow6key" 6lass" cf"L41/openvswitcm4tade=rrapath.c#L370" iref.DP>CMD_DEL= CMD_DEL"+cosdatapath.c#L50" id="L370" class="line"1431me="L3914"> 361    6         14"> >143=upcall" class=.flow6key" 6lassflag="+code=tp" clasflag=tade=rrapath.c#L370" iGENL_ADMIN_PERM>( 373stat6         14"> >1432"+code=flow_ta.flow6key" 6lasspolicya>"L41/openvswipolicytade=rrapath.c#L370" id3" clas=policya>"L41/openvswid3" clas=policye=kasdatapath.c#L50" id="L370" class="line"1433me="L3914"> 373stat6         14"> >1433- *dp>" cldeltch/datapath.c#L50" id="L370" class="line"1434me="L3914"> 373stat6s="line" 14"> >1434actions" cla}sdatapath.c#L50" id="L370" class="line"1435me="L3914"> 368    6s int  >1435tch/datapath{ .flow6key" 6lass" cf"L41/openvswitcm4tade=rrapath.c#L370" iref.DP>CMD_GET>(CMD_GETe=kasdatapath.c#L50" id="L370" class="line"1436me="L3914"> 408    6 ref="net14"> >143="+code=flow_ta.flow6key" 6lassflag="+code=tp" clasflag=tade=rr0,e=flow_tabl5" c6rn 0;
 408    6         14"> >1437"+code=flow_ta.flow6key" 6lasspolicya>"L41/openvswipolicytade=rrapath.c#L370" id3" clas=policya>"L41/openvswid3" clas=policye=kasdatapath.c#L50" id="L370" class="line"14"8me="L3914"> 408    6         14"> >1438-dp>" clge"tch/sdatapath.c#L50" id="L370" class="line"14"9me="L3914"> 379    6    >1439-( 373stat6   if ( >144>* Called wit}sdatapath.c#L50" id="L370" class="line"1441me="L3914"> 408    6         14"> >1441tch/datapath{ .flow6key" 6lass" cf"L41/openvswitcm4tade=rrapath.c#L370" iref.DP>CMD_SET>(CMD_SETe=kasdatapath.c#L50" id="L370" class="line"1442me="L3914"> 408    6         14"> >1442"+code=flow_ta.flow6key" 6lassflag="+code=tp" clasflag=tade=rrapath.c#L370" iGENL_ADMIN_PERM>( 368    6rsref">ET14"> >1443-"L41/openvswipolicytade=rrapath.c#L370" id3" clas=policya>"L41/openvswid3" clas=policye=kasdatapath.c#L50" id="L370" class="line"1444me="L3914"> 408    6   if (!<14"> >1444-dp>" clse"tch/sdatapath.c#L50" id="L370" class="line"1445me="L3914witch/datapath6         14wit>1445* Called wit}sdatapath.c#L50" id="L370" class="line"1446me="L3914"> 408    6 ref="net14"> >1446err"}> id_ href="+"srefL401 =o" class="line"1447me="L3914"> 368    6   if ( >144code=flow_key" cl6ss="s62L388" class="line"1448me="L3914"> 408    6         14"> >1448* Caf="+codconstkbass="sref">ETH_+kba>)nla=policya>"L41/openvswinla=policyopenv"h/datapath.c#Lvport=policya>"L41/openvswivport=policyuffa[apath.c#L370" iref.VPORT_ATTR_MAX>( 379    6    >1449-( 379    6         14"> >145>* Called wit[apath.c#L370" iref.VPORT_ATTR_STATS>(vport=f="+d+code=tp" classef">vport=f="+de=ka) }sdatapath.c#L50" id="L370" class="line"1451me="L3914"> 379    6         14"> >145=upcall" clas[apath.c#L370" iref.VPORT_ATTR_PORT_NO>( 373snvswitNLA_U32"+cod}sdatapath.c#L50" id="L370" class="line"1452me="L3914"> 408    6ref="net/14"> >1452upcall" clas[apath.c#L370" iref.VPORT_ATTR_TYPE>( 373snvswitNLA_U32"+cod}sdatapath.c#L50" id="L370" class="line"1453me="L3914"> 368    6    >1453upcall" clas[apath.c#L370" iref.VPORT_ATTR_UPCALL_PID>( 373snvswitNLA_U32"+cod}sdatapath.c#L50" id="L370" class="line"1454me="L3914"> 408    6   if (!<14"> >1454actions" cla[apath.c#L370" iref.VPORT_ATTR_OPTIONS>(( id_ href="+"srefL401 =o" class="line"1456me="L3914"> 408    6rref="net14"> >1456err"    const s5ruct 5a href" class="line"1457me="L3914"> 368    6r  }
 >1457err"f="+codbass="sref">ETH_+kba>)

vport=

 408    6 ef="net/14"> >1458ode=upcall_i.flow6key" 6lassw41ref="+code=tp"i4ref==rrapath.c#L370" iGENL_ID_GENERATE>( 379    6    >1459ode=upcall_i.flow6key" 6lasshdrsize>(heade*heade*e=ka)sdatapath.c#L50" id="L370" class="line"146ame="L3914"> 408    6ref="net/14"> >1460ode=upcall_i.flow6key" 6lassf="na>"L41/openvswin="ntade=rrapath.c#L370" iref.VPORT_FAMILY>( 361    6r   >1461ode=upcall_i.flow6key" 6lassversionf="+code=tp" clversiontade=rrapath.c#L370" iref.VPORT_VERSION>( 408    6ref="net/14"> >1462ode=upcall_i.flow6key" 6lassmaxa> *>( *tade=rrapath.c#L370" iref.VPORT_ATTR_MAX>( 408    6r   >146itch/}> id_ href="+"srefL401 =o" class="line"1464me="L3914"> 368    6ref="net/14"> >1464acti id_ href="+"srefL401 =o" class="line"1465me="L3914"> 408    6r   >14"5* Cabass="sref">ETH_+kba>)

(dp>vport=multicast_grou41>( 408    6rref="net14"> >1466ode=upcall_i.flow6key" 6lassf="na>"L41/openvswin="ntade=rrapath.c#L370" iref.VPORT_MCGROUP>( 397stat6r  }
 >146="+co}> id_ href="+"srefL401 =o" class="line"1468me="L3914"> 418
 >1468ode=    const s5ruct 5a href" class="line"1469me="L3914"> 418
 >146=acti=rn 0;
 390    6href="net14"> >147>ovs_f="+code=nla6tr" c6ass="sref">vport=" clfillow_key *ETH_+covport
ef="+code=htonvporte=ka,ssamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/datase may not have" id="L373" class="line"1471me="L3914"> 408    6ref="net/14"> >147=upcall" class="sss="6claaaaaaaaaaaaaaaa="sref">ETH_+k_u"> 373snvswitu32"+codflow6key" 6lasspp41ref="+code=tp"hp4h/dasa="sref">ETH_+k_u"> 373snvswitu32"+codflow6key" 6lassseqf"L41/openvswitceqdatask="sref">ETH_de=u"> 373snvswitu32"+codflow6key" 6lassflag="+code=tp" clasflag=tadesk="sref">ETH_de=u8 373snvswitu8"+codflow6key" 6lass" cf"L41/openvswitcm4tadedflow_to_nlat6rs" c65id="L313" class="l1472me="L3914"> 408    6 class="c14"> >1472tch/" id_ href="+"srefL401 =o" class="line"1473me="L3914"> 418
 >147itch/datapathaspacket_cmd_executd"sef">heade*heade*e=kass="sref">ETH_+k_ef">heade*heade*e=ka> id_ href="+"srefL401 =o" class="line"1474me="L3914"> 368    6href="net14"> >147itch/datapathsamp6 clas607kb" classef">vport=f="+d+code=tp" classef">vport=f="+de=kav"h/datapath.c#Lvport=f="+d+code=tp" classvport=f="+de=ka> id_ href="+"srefL401 =o" class="line"1475me="L3914"> 418
 >147=err" class="a" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1476me="L3914"> 422    6hef="net/14"> >1476err"    const s5ruct 5a href" class="line"1477me="L3914"> 408    6r  }
 >147="+code=datapath"6class67"sref">heade*heade*e=kasrrapath.c#L370" i

ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lasspp41ref="+code=tp"hp4h/dasa="sref">ETH_+k_seqf"L41/openvswitceqdataske =clasde=kehasvport=

 408    6 ef="net/14"> >1478-ETH_de=" cf"L41/openvswitcm4tadederrapath.c#L370" id="L370" class="line"1479me="L3914"> 370}
 >147=actions" claaf (!las607kb" classef">heade*heade*e=ka)rrapath.c#L370" id="L370" class="line"148ame="L3914"> 422    5   if (!<14"> >148>* Called witttttttttlow_key-las607kb" classEMSGSIZE>( 361    5         14"> >1481* Carrapath.c#L370" id="L370" class="line"1482me="L3914"> 368    5ref="net/14"> >1482upcall" claslas607kb" classef">heade*heade*e=kah.c#L370" iclasheadeifindex
ef="+code=htonifindexe=kasrrapath.c#L370" i

tedpifindex
ef="+code=hton

tedpifindexovs_p="sref">ETH_+k_vport
ef="+code=htonvporte=kah.c#L370" iclasheaderef">e 422    5    >148itch/datapath.c#L524" i52L394" class="line"1484me="L3914"> 424
 >1484actions" claath.6ass="6ref">attnla=put_u"> 373snvswitnla=put_u">ovs_p="sref">ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassref.VPORT_ATTR_PORT_NO>( * 424
 >148=err" class="s="s6ass="6ref">attnla=put_u"> 373snvswitnla=put_u">ovs_p="sref">ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassref.VPORT_ATTR_TYPE>( 422    5   struct14"> >148="+code=flow_tabl6ass="6ref">attnla=put_saming 373snvswitnla=put_samingovs_p="sref">ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassref.VPORT_ATTR_NAME>(ETH_+k_vport
ef="+code=htonvporte=ka)) ||datapath.c#L524" i52L394" class="line"1487me="L3914"> 368    5ref="net/14"> >148 -attnla=put_u"> 373snvswitnla=put_u">ovs_p="sref">ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassref.VPORT_ATTR_UPCALL_PID>( 418
 >1488-attnla=put_failurna>"L41/openvswinla=put_failurn="srerrapath.c#L370" id="L370" class="line"1489me="L3914"> 379    5    >148itch/datapath.c#L500" i59L390" class="line"149ame="L3914"> 392}
 >149>* Called with ge6l_mut67opeef">vport=

tef="+d+code=tp" classef">vport=

tef="+dovs_p="sref">ETH_+k_vport
ef="+code=htonvporte=kaske =clasde=kehas 424
 >149=upcall" clasath.6ass="6ref">attnla=puta>"L41/openvswinla=putovs_p="sref">ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassref.VPORT_ATTR_STATS>(vport=f="+d+code=tp" classef">vport=f="+de=ka)se may not have" id="L373" class="line"1492me="L3914"> 372 >1492- 368    5ref="net/14"> >149itch/datapath.c#L624"gotoc6ass="6ref">attnla=put_failurna>"L41/openvswinla=put_failurn="srerrapath.c#L370" id="L370" class="line"1494me="L3914"> 407    5c int  >1494acti id_ href="+"srefL401 =o" class="line"1495me="L3914"> 392}
 >1495* Called with ge6l_mut67opeearf="+code=tp" clear="srerrh ge6l_mut67opeef">vport=

teoptiond+code=tp" classef">vport=

teoptiondovs_p="sref">ETH_+k_vport
ef="+code=htonvporte=kask="sref">ETH_+k_buff"L41/openvswitch/dataderrapath.c#L370" id="L370" class="line"1496me="L3914"> 392}
 >1496* Called witath.6ass="6ref">attearf="+code=tp" clear="srer=y-las607kb" classEMSGSIZE>( 392}
 >149 -attearorf="+code=tp" clearor="srerrapath.c#L370" id="L370" class="line"1498me="L3914"> 392}
 >1498ode=    const s5ruct 5a href" class="line"1499me="L3914"> 424
 >149=actions" clalow_key6ass="6ref">att

ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassef">heade*heade*e=ka)errapath.c#L370" id="L370" class="line"15name="L3915name24
150>ovs_flow_to_nlat6rs" c65id="L313" class="l15n1me="L3915n> 424
 >150/open6ass="6ref">attnla=put_failurna>"L41/openvswinla=put_failurn="sr:flow_key" cl6ss="s62L388" class="line"15n2me="L3915n> 372 >1502upcall" claslas607kb" classearf="+code=tp" clear="srerr-las607kb" classEMSGSIZE>( >150itch/6ass="6ref">attearorf="+code=tp" clearor="sr:flow_key" cl6ss="s62L388" class="line"15n4me="L3915n> 407    5c int  >1504upcall" claslas607kb" class

 *ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lassef">heade*heade*e=ka)errapath.c#L370" id="L370" class="line"15n5me="L3915n> 392}
 >1505actions" clalow_key6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"15n6me="L3915n> 392}
 >1506err"     const s5ruct 5a href" class="line"15n7me="L3915n> 392}
 >1508"+co=rn 0;
 *ETH_+k_md_evport=" clbuildow_key *vport=" clbuildow_keovs_psamp6 clas607kb" classvport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=ka,s="sref">ETH_+k_u"> 373snvswitu32"+codflow6key" 6lasspp41ref="+code=tp"hp4h/dase may not have" id="L373" class="line"151ame="L3915"> 418
 >151>* Called witttttttttttttttttttttttttttttttttt="sref">ETH_+k_u"> 373snvswitu32"+codflow6key" 6lassseqf"L41/openvswitceqdatask="sref">ETH_de=u8 373snvswitu8"+codflow6key" 6lass" cf"L41/openvswitcm4tadedflow_to_nlat6rs" c65id="L313" class="l15"1me="L3915"> 370}
 >151=upca" id_ href="+"srefL401 =o" class="line"15"2me="L3915"> 418
 >1512upcall" classamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataerrapath.c#L370" id="L370" class="line"15"3me="L3915"> 363    6         15"> >151itch/datapatha" c6ass="6ref">attlowvaly * 418
 >1514acti id_ href="+"srefL401 =o" class="line"15"5me="L3915"> 418
 >1515* Called with ge6l_mut67opebuff"L41/openvswitch/dataerrh ge6l_mut67ope *ETH_+k_NLMSG_DEFAULT_SIZE>(ETH_de=GFPSATOMIC>( 418
 >1516* Called witath.!las607kb" classbuff"L41/openvswitch/datadrrapath.c#L370" id="L370" class="line"15"7me="L3915"> 368    6         15"> >151 -eovs_p-las607kb" classENOMEM>( 370}
 >15"8ode=    const s5ruct 5a href" class="line"15"9me="L3915"> 379    6    >151=actions" clat_cmd_executd"slowvaly *vport=" clfillow_key *ETH_+k_vport
ef="+code=htonvporte=kask="sref">ETH_+k_buff"L41/openvswitch/datasdflow6key" 6lasspp41ref="+code=tp"hp4h/dasa="sref">ETH_+k_seqf"L41/openvswitceqdatask0sk="sref">ETH_de=" cf"L41/openvswitcm4tadederrapath.c#L370" id="L370" class="line"152ame="L3915"> 370}
 >1520* Called witath.t_cmd_executd"slowvaly * 408    6         15"> >152=upcall" class="sss="t_cmd_executd"skfree_buff"L41/openvswitkfree_bufovs_p="sref">ETH_+k_buff"L41/openvswitch/dataderrapath.c#L370" id="L370" class="line"1522me="L3915"> 370}
 >1522-eovs_pt_cmd_executd"slowvaly * 368    6         15"> >152itch/datapath     const s5ruct 5a href" class="line"1524me="L3915"> 370}
 >1524actions" clalow_key="sref">ETH_+k_buff"L41/openvswitch/dataerrapath.c#L370" id="L370" class="line"1525me="L3915"> 408    6 5 int  >152=err"     const s5ruct 5a href" class="line"1526me="L3915"> 422    6href="net15"> >1526err"    const s5ruct 5a href" class="line"15"7me="L3915"> 408    6         15"> >1527"+co=rn 0;
 388    6         15"> >1528* Caf="+codsamp6 clas607kb" classvport
ef="+code=htonvporte=kass="sref">ETH_+cootoku4_vport
ef="+code=htonotoku4_vportovs_psamp6 clas607kb" classef">heade*heade*e=kass="sref">ETH_+k_ef">heade*heade*e=kase may not have" id="L373" class="line"1529me="L3915"> 408    6    >1529-ETH_+kba>)nla> *>( *e=kass="sref">ETH_+k_a>(( 408    6   } else15"> >1530tch/" id_ href="+"srefL401 =o" class="line"1531me="L3915"> 361    6         15"> >153=upcall" clasaspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1532me="L3915"> 373stat6         15"> >1532upcall" classamp6 clas607kb" classvport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"1533me="L3915"> 373stat6         15"> >153itch/datapath.c#L524" i52L394" class="line"1534me="L3915"> 373stat6s="line" 15"> >1534actions" claath.6ass="6ref">atta>(( 368    6s int  >153=err" class="s="sss="t_cmd_executd"svport
ef="+code=htonvporte=kasrrh ge6l_mut67opeef">vport=looatna>"L41/openvswief">vport=looatnovs_pt_cmd_executd"snla=clasa>"L41/openvswinla=clasovs_pt_cmd_executd"sa>(( 408    6 ref="net15"> >153="+code=flow_tas" claath.!las607kb" classvport
ef="+code=htonvporte=ka)rrapath.c#L370" id="L370" class="line"1537me="L3915"> 408    6         15"> >1537"+code=flow_taef="+code=6INVlow_keylas607kb" classERR_PT>eovs_p-las607kb" classENODEV>( 408    6         15"> >1538-attef">heade*heade*e=kah.c#L370" iclasheadeifindex
ef="+code=htonifindexe=kasee id_ href="+"srefL401 =o" class="line"15"9me="L3915"> 379    6    >1539-heade*heade*e=kah.c#L370" iclasheadeifindex
ef="+code=htonifindexe=kas!rrapath.c#L370" i

tedpifindex
ef="+code=hton

tedpifindexovs_p="sref">ETH_+k_vport
ef="+code=htonvporte=kah.c#L370" iclasheaderef">e 373stat6   if ( >154>* Called witttttttttttttttttlow_keylas607kb" classERR_PT>eovs_p-las607kb" classENODEV>( 408    6         15"> >154=upcall" class="sss="low_keylas607kb" classvport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"1542me="L3915"> 408    6         15"> >1542"+code=flow_} elseaath.6ass="6ref">atta>(( 368    6rsref">ET15"> >1543- 373snvswitu32"+codflow6key" 6lassport_ney * 373snvswitnla=

teu">ovs_pt_cmd_executd"sa>(( 408    6   if (!<15"> >1544acti id_ href="+"srefL401 =o" class="line"1545me="L3915witch/datapath6         15wit>154=err" class="s="sss="ath.6ass="6ref">attport_ney *( 408    6 ref="net15"> >154="+code=flow_tas" clattttttttlow_keylas607kb" classERR_PT>eovs_p-las607kb" classEFBIGf"L41/openvswitEFBIGdataderrapath.c#L370" id="L370" class="line"1547me="L3915"> 368    6   if ( >154code=flow_key" cl6ss="s62L388" class="line"1548me="L3915"> 408    6         15"> >1548-eheade*heade*e=kah.c#L370" iclasheadeifindex
ef="+code=htonifindexe=kaderrapath.c#L370" id="L370" class="line"1549me="L3915"> 379    6    >1549-e 379    6         15"> >155>* Called witttttttttttttttttlow_keylas607kb" classERR_PT>eovs_p-las607kb" classENODEV>( 379    6         15"> >1551* Carrapath.c#L370" id="L370" class="line"1552me="L3915"> 408    6ref="net/15"> >1552-e * 368    6    >1553- 408    6   if (!<15"> >1554actions" clattttttttttttttttlow_keylas607kb" classERR_PT>eovs_p-las607kb" classENOENT>( 408    6rref="net15"> >155="+code=flow_} elserrapath.c#L370" id="L370" class="line"1557me="L3915"> 368    6r  }
 >155 -eovs_p-las607kb" classEINVAL=  408    6 ef="net/15"> >1558ode=     const s5ruct 5a href" class="line"1559me="L3915"> 379    6    >155itch/datapath.c#L500" i59L390" class="line"156ame="L3915"> 408    6ref="net/15"> >156>ovs_f="+code=nla6tr" c6ass="sref">vport=" clnewy * *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 361    6r   >156=upca" id_ href="+"srefL401 =o" class="line"1562me="L3915"> 408    6ref="net/15"> >1562upcall" classamp6 clas607kb" classnla> *>( *e=kasss="sref">ETH_+k_a>( *ETH_de=e> *="+code=tp" clasa> *=e=kaerrapath.c#L370" id="L370" class="line"1563me="L3915"> 408    6r   >156itch/datapathaspacket_cmd_executd"sef">heade*heade*e=kass="sref">ETH_+k_ef">heade*heade*e=ka=rrapath.c#L370" ii_key *ETH_de=userhd* 368    6ref="net/15"> >156itch/datapathsamp6 clas607kb" classvport=parmd+code=tp" classvport=parmd"+codflow6key" 6lassparmd+code=tp" classparmd"+coerrapath.c#L370" id="L370" class="line"1565me="L3915"> 408    6r   >1565tch/datapathsamp6 clas607kb" class=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)"+coerrapath.c#L370" id="L370" class="line"1566me="L3915"> 408    6rref="net15"> >1566err" class="aspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"1567me="L3915"> 397stat6r  }
 >1567err" class="aspacket_cmd_executd"sclass="la>"L41/openvswitlass="le=kass="sref">ETH_+co"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1568me="L3915"> 418
 >1568- 373snvswitu32"+codflow6key" 6lassport_ney * 418
 >156=actions" claa" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"157ame="L3915"> 390    6href="net15"> >157>ovs_flow_to_nlat6rs" c65id="L313" class="l1571me="L3915"> 408    6ref="net/15"> >157=upcall" clas6ass="6ref">attearf="+code=tp" clear="srerr-las607kb" classEINVAL=  408    6 class="c15"> >1572upcall" clasath.!las607kb" classa>(((( 418
 >1573-(( 368    6href="net15"> >1574actions" clattttttttgotoc6ass="6ref">attexi"+code=tp" classexi"dataerrapath.c#L370" id="L370" class="line"1575me="L3915"> 418
 >157=err"rrapath.c#L370" id="L370" class="line"1576me="L3915"> 422    6hef="net/15"> >1576upcall" clas6ass="6ref">attrtnl=look
ef="+code=htonrtnl=lookovs_pderrapath.c#L370" id="L370" class="line"1577me="L3915"> 408    6r  }
 >157="+code=datapath"6class67"srref">eheade*heade*e=kah.c#L370" iclasheadeifindex
ef="+code=htonifindexe=kaderrapath.c#L370" id="L370" class="line"1578me="L3915"> 408    6 ef="net/15"> >1578-( 370}
 >157=actions" claaf (!las607kb" classref">e 422    5   if (!<15"> >158>* Called witttttttttgotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1581me="L3915"> 361    5         15"> >1581* Carrapath.c#L370" id="L370" class="line"1582me="L3915"> 368    5ref="net/15"> >1582upcall" clasath.6ass="6ref">atta>(( 422    5    >1583- * 373snvswitnla=

teu">ovs_pt_cmd_executd"sa>(( 424
 >1584acti id_ href="+"srefL401 =o" class="line"1585me="L3915"> 424
 >158=err" class="s="s="+ct_cmd_executd"searf="+code=tp" clear="srerr-las607kb" classEFBIGf"L41/openvswitEFBIGdataerrapath.c#L370" id="L370" class="line"1586me="L3915"> 422    5   struct15"> >158="+code=flow_tablclasath.6ass="6ref">attport_ney *( 368    5ref="net/15"> >158 -attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1588me="L3915"> 418
 >1588ode=    const s5ruct 5a href" class="line"1589me="L3915"> 379    5    >1589-e * 392}
 >159>* Called witttttttttt_cmd_executd"searf="+code=tp" clear="srerr-las607kb" classEBUSY>( 424
 >159=upcall" class="sss="ath.6ass="6ref">attvport
ef="+code=htonvporte=ka)rrapath.c#L370" id="L370" class="line"1592me="L3915"> 372 >1592-attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1593me="L3915"> 368    5ref="net/15"> >159itch/datapath} elsea" id_ href="+"srefL401 =o" class="line"1594me="L3915"> 407    5c int  >1594actions" clattttttttfor .6ass="6ref">attport_ney * * 392}
 >159=err" class="s="s="+ctablclasath.6ass="6ref">attport_ney *( 392}
 >159="+code=flow_tas" clattttttttttttttttt_cmd_executd"searf="+code=tp" clear="srerr-las607kb" classEFBIGf"L41/openvswitEFBIGdataerrapath.c#L370" id="L370" class="line"1597me="L3915"> 392}
 >159 -attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1598me="L3915"> 392}
 >1598- 424
 >1599-e * >1602- >160itch/datapath     const s5ruct 5a href" class="line"16n4me="L3916n> 407    5c int  >1604acti id_ href="+"srefL401 =o" class="line"16n5me="L3916n> 392}
 >1605* Called with ge6l_mut67opeparmd+code=tp" classparmd"+co.flow6key" 6lassf="na>"L41/openvswin="ntade=rrapath.c#L370" inla=clasa>"L41/openvswinla=clasovs_pt_cmd_executd"sa>((attparmd+code=tp" classparmd"+co.flow6key" 6lasstypdf="+code=tp" cltypdtade=rrapath.c#L370" i 373snvswitnla=

teu">ovs_pt_cmd_executd"sa>(( >160="+code=datapath"6class67"srparmd+code=tp" classparmd"+co.flow6key" 6lassoptiond+code=tp" classeptiondovs_=rrapath.c#L370" ia>(( >1608-e"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"16n9me="L3916n> 424
 >160=actions" clat_cmd_executd"sparmd+code=tp" classparmd"+co.flow6key" 6lassport_ney * * 418
 >161>* Called with ge6l_mut67opeparmd+code=tp" classparmd"+co.flow6key" 6lassupcall_pp41ref="+code=tp"upcall_pp4e=ka=rrapath.c#L370" i 373snvswitnla=

teu">ovs_pt_cmd_executd"sa>(( 370}
 >1611* Carrapath.c#L370" id="L370" class="line"16"2me="L3916"> 418
 >1612upcall" clast_cmd_executd"svport
ef="+code=htonvporte=kasrrh ge6l_mut67openew_vport
ef="+code=htonnew_vportovs_pe =clasde=kehas 363    6         16"> >161itch/datapatht_cmd_executd"searf="+code=tp" clear="srerrt_cmd_executd"sPTR_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1614me="L3916"> 418
 >1614actions" claath.6ass="6ref">attIS_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka))rrapath.c#L370" id="L370" class="line"16"5me="L3916"> 418
 >161=err" class="s="s="+cgotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"16"6me="L3916"> 418
 >1616err"    const s5ruct 5a href" class="line"16"7me="L3916"> 368    6         16"> >161="+code=datapath"6class67"srrepl)
ef="+code=htonrepl)"+coerrh ge6l_mut67opeef">vport=" clbuildow_key *vport=" clbuildow_keovs_pt_cmd_executd"svport
ef="+code=htonvporte=kask="sref">ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kask="sref">ETH_de=i_key *ETH_de=snd_seqf"L41/openvswitcnd_seqe=kas    const s5ruct 5a href" class="line"16"8me="L3916"> 370}
 >1618-( 379    6    >161=actions" claaf (6ass="6ref">attIS_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co))r" id_ href="+"srefL401 =o" class="line"162ame="L3916"> 370}
 >162>* Called witttttttttt_cmd_executd"searf="+code=tp" clear="srerrt_cmd_executd"sPTR_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co)errapath.c#L370" id="L370" class="line"16"1me="L3916"> 408    6         16"> >162=upcall" class="sss="t_cmd_executd"smd_edp>detach_port
ef="+code=htonmd_edp>detach_portovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1622me="L3916"> 370}
 >1622-attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1623me="L3916"> 368    6         16"> >162itch/datapath     const s5ruct 5a href" class="line"1624me="L3916"> 370}
 >1624actions" cla6ass="6ref">att

ETH_de=

 *ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kas    const s5ruct 5a href" class="line"1625me="L3916"> 408    6 5 int  >162=err" class="s="s="+ctablt_cmd_executd"smd_edp>vport=multicast_grou/a>"L41/openvswimd_edp>vport=multicast_grou/"+co.flow6key" 6lassp41ref="+code=tp"p4e=kask="sref">ETH_de=i_key *ETH_de=nlhd*ETH_de=GFPSKERNEL=  422    6href="net16"> >1626err"    const s5ruct 5a href" class="line"16"7me="L3916"> 408    6         16"> >1627"+co=ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdata:flow_key" cl6ss="s62L388" class="line"1628me="L3916"> 388    6         16"> >1628- 408    6    >1629-attexi"
ef="+code=htonexi"data:flow_key" cl6ss="s62L388" class="line"163ame="L3916"> 408    6   } else16"> >163>* Called witlow_key6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1631me="L3916"> 361    6         16"> >163=upca     const s5ruct 5a href" class="line"1632me="L3916"> 373stat6         16"> >16">ovs_    const s5ruct 5a href" class="line"1633me="L3916"> 373stat6         16"> >163itch/f="+code=nla6tr" c6ass="sref">vport=" cls5r
ef="+code=htonef">vport=" cls5rovs_psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 373stat6s="line" 16"> >1634acti" id_ href="+"srefL401 =o" class="line"1635me="L3916"> 368    6s int  >1635tch/datapathsamp6 clas607kb" classnla> *>( *e=kasss="sref">ETH_+k_a>( *ETH_de=e> *="+code=tp" clasa> *=e=kaerrapath.c#L370" id="L370" class="line"1636me="L3916"> 408    6 ref="net16"> >1636err" class="aspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)"+coerrapath.c#L370" id="L370" class="line"1637me="L3916"> 408    6         16"> >1637err" class="aspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"16"8me="L3916"> 408    6         16"> >1638-attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"16"9me="L3916"> 379    6    >163itch/datapath.c#L500" i59L390" class="line"164ame="L3916"> 373stat6   if ( >164>* Called with ge6l_mut67opertnl=look
ef="+code=htonrtnl=lookovs_pderrapath.c#L370" id="L370" class="line"1641me="L3916"> 408    6         16"> >164=upcall" clas6ass="6ref">attvport
ef="+code=htonvporte=kasrrh ge6l_mut67opeotoku4_vport
ef="+code=htonotoku4_vportovs_papath.c#L370" ii_key *ETH_de=userhd*ETH_de=a>( 408    6         16"> >1642upcall" clast_cmd_executd"searf="+code=tp" clear="srerrt_cmd_executd"sPTR_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1643me="L3916"> 368    6rsref">ET16"> >1643-attIS_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka))rrapath.c#L370" id="L370" class="line"1644me="L3916"> 408    6   if (!<16"> >1644actions" clattttttttgotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1645me="L3916witch/datapath6         16wit>164=err"rrapath.c#L370" id="L370" class="line"1646me="L3916"> 408    6 ref="net16"> >1646upcall" clas6ass="6ref">attearf="+code=tp" clear="srerr0errapath.c#L370" id="L370" class="line"1647me="L3916"> 368    6   if ( >1647-atta>((e id_ href="+"srefL401 =o" class="line"1648me="L3916"> 408    6         16"> >1648- 373snvswitnla=

teu">ovs_pt_cmd_executd"sa>(( 379    6    >1649-attearf="+code=tp" clear="srerr-las607kb" classEINVAL=  379    6         16"> >165>ovs_flow_to_nlat6rs" c65id="L313" class="l1651me="L3916"> 379    6         16"> >165=upcall" clasath.!las607kb" classearf="+code=tp" clear="sreeerapath.c#L370" ia>(( 408    6ref="net/16"> >1652-vport=s
teoptiond+code=tp" classef">vport=s
teoptiondovs_p="sref">ETH_+k_vport
ef="+code=htonvporte=kask="sref">ETH_+k_a>(( 368    6    >1653-attearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"1654me="L3916"> 408    6   if (!<16"> >1654actions" clattttttttgotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1655me="L3916witch/datapath6   165=err" class="ath.6ass="6ref">atta>(( 408    6rref="net16"> >165="+code=flow_tas" claapath.c#L370" ivport
ef="+code=htonvporte=kah.c#L370" iclasheadeupcall_pp41ref="+code=tp"upcall_pp4e=ka=rrapath.c#L370" i 373snvswitnla=

teu">ovs_pt_cmd_executd"sa>(( 368    6r  }
 >165code=flow_key" cl6ss="s62L388" class="line"1658me="L3916"> 408    6 ef="net/16"> >1658-vport=" clbuildow_key *vport=" clbuildow_keovs_pt_cmd_executd"svport
ef="+code=htonvporte=kask="sref">ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kask="sref">ETH_de=i_key *ETH_de=snd_seqf"L41/openvswitcnd_seqe=kas    const s5ruct 5a href" class="line"1659me="L3916"> 379    6    >1659-( 408    6ref="net/16"> >1660* Called witath.t_cmd_executd"sIS_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co))r" id_ href="+"srefL401 =o" class="line"1661me="L3916"> 361    6r   >166=upcall" class="sss="t_cmd_executd"s"+"   k=s
teearf="+code=tp" cl"+"   k=s
teearovs_papath.c#L370" ii_i"_s5r
ef="+code=htoni_i"_s5r"+co.flow6key" 6lass

 408    6ref="net/16"> >1662-vport=multicast_grou/a>"L41/openvswimd_edp>vport=multicast_grou/"+co.flow6key" 6lassp41ref="+code=tp"p4e=kask="sref">ETH_de=PTR_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co))errapath.c#L370" id="L370" class="line"1663me="L3916"> 408    6r   >1663-attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1664me="L3916"> 368    6ref="net/16"> >166itch/datapath     const s5ruct 5a href" class="line"1665me="L3916"> 408    6r   >166=err"rrapath.c#L370" id="L370" class="line"1666me="L3916"> 408    6rref="net16"> >1666upcall" clas6ass="6ref">att

ETH_de=

 *ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kas    const s5ruct 5a href" class="line"1667me="L3916"> 397stat6r  }
 >166 -vport=multicast_grou/a>"L41/openvswimd_edp>vport=multicast_grou/"+co.flow6key" 6lassp41ref="+code=tp"p4e=kask="sref">ETH_de=i_key *ETH_de=nlhd*ETH_de=GFPSKERNEL=  418
 >1668ode=    const s5ruct 5a href" class="line"1669me="L3916"> 418
 >1669-attexi"_unlook
ef="+code=htonexi"_unlookdata:flow_key" cl6ss="s62L388" class="line"167ame="L3916"> 390    6href="net16"> >167>* Called with ge6l_mut67opertnl=unlook
ef="+code=htonrtnl=unlookovs_p)errapath.c#L370" id="L370" class="line"1671me="L3916"> 408    6ref="net/16"> >167=upcall" claslow_key6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1672me="L3916"> 408    6 class="c16"> >1672upca     const s5ruct 5a href" class="line"1673me="L3916"> 418
 >167itch/datapath.c#L524" i52L394" class="line"1674me="L3916"> 368    6href="net16"> >1674actif="+code=nla6tr" c6ass="sref">vport=" cldely *vport=" cldelovs_psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 418
 >167=err"" id_ href="+"srefL401 =o" class="line"1676me="L3916"> 422    6hef="net/16"> >1676err" class="aspacket_cmd_executd"snla> *>( *e=kasss="sref">ETH_+k_a>( *ETH_de=e> *="+code=tp" clasa> *=e=kaerrapath.c#L370" id="L370" class="line"1677me="L3916"> 408    6r  }
 >1677err" class="aspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)"+coerrapath.c#L370" id="L370" class="line"1678me="L3916"> 408    6 ef="net/16"> >1678-ETH_+covport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"1679me="L3916"> 370}
 >167=actions" claa" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"168ame="L3916"> 422    5   if (!<16"> >168>ovs_flow_to_nlat6rs" c65id="L313" class="l1681me="L3916"> 361    5         16"> >168=upcall" clas6ass="6ref">attrtnl=look
ef="+code=htonrtnl=lookovs_pderrapath.c#L370" id="L370" class="line"1682me="L3916"> 368    5ref="net/16"> >1682upcall" clast_cmd_executd"svport
ef="+code=htonvporte=kasrrh ge6l_mut67opeotoku4_vport
ef="+code=htonotoku4_vportovs_papath.c#L370" ii_key *ETH_de=userhd*ETH_de=a>( 422    5    >168itch/datapatht_cmd_executd"searf="+code=tp" clear="srerrt_cmd_executd"sPTR_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1684me="L3916"> 424
 >1684actions" claath.6ass="6ref">attIS_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka))rrapath.c#L370" id="L370" class="line"1685me="L3916"> 424
 >168=err" class="s="s="+cgotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1686me="L3916"> 422    5   struct16"> >1686err"    const s5ruct 5a href" class="line"1687me="L3916"> 368    5ref="net/16"> >1687-attvport
ef="+code=htonvporte=kah.c#L370" iclasheadeport_ney * 418
 >1688- 379    5    >1689-attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"169ame="L3916"> 392}
 >169>* Called wit     const s5ruct 5a href" class="line"1691me="L3916"> 424
 >1691* Carrapath.c#L370" id="L370" class="line"1692me="L3916"> 372 >1692upcall" clast_cmd_executd"srepl)
ef="+code=htonrepl)"+coerrh ge6l_mut67opeef">vport=" clbuildow_key *vport=" clbuildow_keovs_pt_cmd_executd"svport
ef="+code=htonvporte=kask="sref">ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kask="sref">ETH_de=i_key *ETH_de=snd_seqf"L41/openvswitcnd_seqe=kas    const s5ruct 5a href" class="line"1693me="L3916"> 368    5ref="net/16"> >1693- 407    5c int  >1694actions" clat_cmd_executd"searf="+code=tp" clear="srerrt_cmd_executd"sPTR_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co)errapath.c#L370" id="L370" class="line"1695me="L3916"> 392}
 >169=err" class="ath.6ass="6ref">attIS_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co))rrapath.c#L370" id="L370" class="line"1696me="L3916"> 392}
 >169="+code=flow_tas" clagotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"1697me="L3916"> 392}
 >169code=flow_key" cl6ss="s62L388" class="line"1698me="L3916"> 392}
 >1698-detach_port
ef="+code=htonmd_edp>detach_portovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1699me="L3916"> 424
 >169itch/datapath.c#L500" i59L390" class="line"17name="L3917name24
170>* Called with ge6l_mut67ope

ETH_de=

 *ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kas    const s5ruct 5a href" class="line"17n1me="L3917n> 424
 >170=upcall" class="sss="6clat_cmd_executd"smd_edp>vport=multicast_grou/a>"L41/openvswimd_edp>vport=multicast_grou/"+co.flow6key" 6lassp41ref="+code=tp"p4e=kask="sref">ETH_de=i_key *ETH_de=nlhd*ETH_de=GFPSKERNEL=  >170>ovs_    const s5ruct 5a href" class="line"17n3me="L3917n> 368    5ref="net/17n> >170itch/=ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdata:flow_key" cl6ss="s62L388" class="line"17n4me="L3917n> 407    5c int  >1704actions" clat_cmd_executd"srtnl=unlook
ef="+code=htonrtnl=unlookovs_p)errapath.c#L370" id="L370" class="line"17n5me="L3917n> 392}
 >1705* Called witlow_key6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"17n6me="L3917n> 392}
 >1706upca     const s5ruct 5a href" class="line"17n7me="L3917n> 392}
 >1708-vport=" clg5r
ef="+code=htonef">vport=" clg5rovs_psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)

 *ETH_+k_w_key * 418
 >171>* Called witaspacket_cmd_executd"snla> *>( *e=kasss="sref">ETH_+k_a>( *ETH_de=e> *="+code=tp" clasa> *=e=kaerrapath.c#L370" id="L370" class="line"1711me="L3917"> 370}
 >1711* Called witaspacket_cmd_executd"sef">heade*heade*e=kass="sref">ETH_+k_ef">heade*heade*e=ka=rrapath.c#L370" ii_key *ETH_de=userhd* 418
 >1712upcall" clasaspacket_cmd_executd"s=eflow_key *ETH_+k_repl)
ef="+code=htonrepl)"+coerrapath.c#L370" id="L370" class="line"1713me="L3917"> 363    6         17"> >171itch/datapathaspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"1714me="L3917"> 418
 >1714actions" claa" c6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"17"5me="L3917"> 418
 >171=err"rrapath.c#L370" id="L370" class="line"17"6me="L3917"> 418
 >1716upcall" clas6ass="6ref">attrcu_read=look
ef="+code=htonrcu_read=lookovs_p)errapath.c#L370" id="L370" class="line"17"7me="L3917"> 368    6         17"> >171="+code=datapath"6class67"srvport
ef="+code=htonvporte=kasrrh ge6l_mut67opeotoku4_vport
ef="+code=htonotoku4_vportovs_papath.c#L370" ief">heade*heade*e=kask="sref">ETH_de=a>( 370}
 >1718-eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka)errapath.c#L370" id="L370" class="line"1719me="L3917"> 379    6    >171=actions" claaf (6ass="6ref">attIS_ER>eovs_pt_cmd_executd"svport
ef="+code=htonvporte=ka))rrapath.c#L370" id="L370" class="line"172ame="L3917"> 370}
 >172>* Called witttttttttgotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"17"1me="L3917"> 408    6         17"> >1721* Carrapath.c#L370" id="L370" class="line"1722me="L3917"> 370}
 >1722upcall" clast_cmd_executd"srepl)
ef="+code=htonrepl)"+coerrh ge6l_mut67opeef">vport=" clbuildow_key *vport=" clbuildow_keovs_pt_cmd_executd"svport
ef="+code=htonvporte=kask="sref">ETH_de=i_key *ETH_de=snd_pp41ref="+code=tp"snd_pp4e=kask="sref">ETH_de=i_key *ETH_de=snd_seqf"L41/openvswitcnd_seqe=kas    const s5ruct 5a href" class="line"1723me="L3917"> 368    6         17"> >1723-( 370}
 >1724actions" cla6ass="6ref">attearf="+code=tp" clear="srerrt_cmd_executd"sPTR_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co)errapath.c#L370" id="L370" class="line"1725me="L3917"> 408    6 5 int  >172=err" class="ath.6ass="6ref">attIS_ER>eovs_pt_cmd_executd"srepl)
ef="+code=htonrepl)"+co))rrapath.c#L370" id="L370" class="line"1726me="L3917"> 422    6href="net17"> >172="+code=flow_tas" clagotoc6ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdataerrapath.c#L370" id="L370" class="line"17"7me="L3917"> 408    6         17"> >172code=flow_key" cl6ss="s62L388" class="line"1728me="L3917"> 388    6         17"> >1728- 408    6    >172itch/datapath.c#L500" i59L390" class="line"173ame="L3917"> 408    6   } else17"> >173>* Called witlow_key6ass="6ref">att

ETH_de=w_key * 361    6         17"> >1731* Carrapath.c#L370" id="L370" class="line"1732me="L3917"> 373stat6         17"> >17">ovs_=ass="6ref">attexi"_unlook
ef="+code=htonexi"_unlookdata:flow_key" cl6ss="s62L388" class="line"1733me="L3917"> 373stat6         17"> >173itch/datapatht_cmd_executd"srcu_read=unlook
ef="+code=htonrcu_read=unlookovs_p)errapath.c#L370" id="L370" class="line"1734me="L3917"> 373stat6s="line" 17"> >1734* Called witlow_key6ass="6ref">attearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"1735me="L3917"> 368    6s int  >1735tch/     const s5ruct 5a href" class="line"1736me="L3917"> 408    6 ref="net17"> >1736err"    const s5ruct 5a href" class="line"1737me="L3917"> 408    6         17"> >1737err"f="+code=nla6tr" c6ass="sref">vport=" cldum/a>"L41/openvswimd_evport=" cldum/ovs_psamp6 clas607kb" class=eflow_key *ETH_+k_buff"L41/openvswitch/dataskbass="sref">ETH_+kba>)"+"   k=callbaok
ef="+code=hton"+"   k=callbaokuffass="sref">ETH_+k_cff"L41/openvswitcbuffaddatapath.c#L500" i59L390" class="line"17"8me="L3917"> 408    6         17"> >1738- 379    6    >173=actions" claaspacket_cmd_executd"sef">heade*heade*e=kass="sref">ETH_+k_ef">heade*heade*e=ka=rrapath.c#L370" i

ETH_de=nlh 373stat6   if ( >174>* Called witaspacket_cmd_executd"sclass="lETH_+k_"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1741me="L3917"> 408    6         17"> >174=upcall" clas6ass="6ref">attu"> 373snvswitu">ovs_s6ass="6ref">attport_ney * 408    6         17"> >1742upcall" clase=nla6tr" c6ass="srlowvaly * 368    6rsref">ET17"> >174itch/datapath.c#L524" i52L394" class="line"1744me="L3917"> 408    6   if (!<17"> >1744actions" cla6ass="6ref">attref">eeheade*heade*e=ka=kass="sref">ETH_de=dp_ifindexf">ee 408    6 ref="net17"> >174="+code=flow_tas" clalow_key-las607kb" classENODEVf">e 368    6   if ( >174code=flow_key" cl6ss="s62L388" class="line"1748me="L3917"> 408    6         17"> >1748- 379    6    >1749-attport_ney *ETH_de=arg="+code=tp" clasarg=uffa[0];"t_cmd_executd"sport_ney *( * 379    6         17"> >175>* Called witttttttttaspacket_cmd_executd"svport
ef="+code=htonvporte=kass="sref">ETH_+covport
ef="+code=htonvporte=kaerrapath.c#L370" id="L370" class="line"1751me="L3917"> 379    6         17"> >1751* Carrapath.c#L370" id="L370" class="line"1752me="L3917"> 408    6ref="net/17"> >1752-e * 368    6    >1753- 408    6   if (!<17"> >1754actions" clattttttttttttttttcontinueerrapaonst s5ruct 5a href" class="line"1755me="L3917witch/datapath6   175=err"rrapath.c#L370" id="L370" class="line"1756me="L3917"> 408    6rref="net17"> >175="+code=flow_tas" claath.6ass="6ref">attmd_evport=" clfillow_key *ETH_de=buff"L41/openvswitch/datask="sref">ETH_de=NETLINK_CBf"L41/openvswitNETLINK_CBovs_pt_cmd_executd"scff"L41/openvswitcbuffa=kass="sref">ETH_de=buff"L41/openvswitch/data).flow6key" 6lasspp41ref="+code=tp"pp4e=kas    const s5ruct 5a href" class="line"1757me="L3917"> 368    6r  }
 >175 -ETH_de=nlhETH_de=nlmsg_seqf"L41/openvswitnlmsg_seqdatask="sref">ETH_de=NLM_F_MULTIf"L41/openvswitNLM_F_MULTIe=kas    const s5ruct 5a href" class="line"1758me="L3917"> 408    6 ef="net/17"> >1758-( 379    6    >1759- 408    6ref="net/17"> >176>* Called wit     const s5ruct 5a href" class="line"1761me="L3917"> 361    6r   >176=upcall" clas6ass="6ref">attrcu_read=unlook
ef="+code=htonrcu_read=unlookovs_p)errapath.c#L370" id="L370" class="line"1762me="L3917"> 408    6ref="net/17"> >176>ovs_    const s5ruct 5a href" class="line"1763me="L3917"> 408    6r   >176itch/datapatht_cmd_executd"scff"L41/openvswitcbuffa=kass="sref">ETH_de=arg="+code=tp" clasarg=uffa[0]errh ge6l_mut67opeport_ney * 368    6ref="net/17"> >1764actions" clat_cmd_executd"srowvaly *ETH_de=lenf"L41/openvswitlenh/daerrapath.c#L370" id="L370" class="line"1765me="L3917"> 408    6r   >176=err"rrapath.c#L370" id="L370" class="line"1766me="L3917"> 408    6rref="net17"> >1766upcall" claslow_key6ass="6ref">attlowvaly * 397stat6r  }
 >176 - 418
 >1768ode=    const s5ruct 5a href" class="line"1769me="L3917"> 418
 >1769-attlohash_flow_table
ef="+code=htonrohash_flow_tableovs_psamp6 clas607kb" classwork_samp6 
ef="+code=htonwork_samp6 e=kass="sref">ETH_+cowork
ef="+code=htonworke=ka)rrapath.c#L370" id="L370" class="line"177ame="L3917"> 390    6href="net17"> >177>* Ca" id_ href="+"srefL401 =o" class="line"1771me="L3917"> 408    6ref="net/17"> >1771* Called witaspacket_cmd_executd"sclass="lETH_+k_"L41/openvswitch/daerrapath.c#L370" id="L370" class="line"1772me="L3917"> 408    6 class="c17"> >177>ovs_    const s5ruct 5a href" class="line"1773me="L3917"> 418
 >177itch/datapatht_cmd_executd"s

 368    6href="net17"> >1774actirrapath.c#L370" id="L370" class="line"1775me="L3917"> 418
 >1775tch/datapatht_cmd_executd"slist_for_each_entr)
ef="+code=htonlist_for_each_entr)ovs_papath.c#L370" iref">eETH_de=list_n_de
ef="+code=htonlist_n_dee=ka) " id_ href="+"srefL401 =o" class="line"1776me="L3917"> 422    6hef="net/17"> >177="+code=flow_tas" claaspacket_cmd_executd"sflow_table
ef="+code=htonflow_tableovs_ss="sref">ETH_+k_eld_table
ef="+code=htoneld_tablee=ka=rrapath.c#L370" i

e 408    6r  }
 >177 -ETH_+k_new_table
ef="+code=htonnew_tableh/daerrapath.c#L370" id="L370" class="line"1778me="L3917"> 408    6 ef="net/17"> >1778ode=    const s5ruct 5a href" class="line"1779me="L3917"> 370}
 >1779-attnew_table
ef="+code=htonnew_tableh/daerrh ge6l_mut67opeef">flow_tbl_rohashy * 422    5   if (!<17"> >178>* Called witttttttttath.!las607kb" classIS_ER>eovs_pt_cmd_executd"snew_table
ef="+code=htonnew_tableh/da))r" id_ href="+"srefL401 =o" class="line"1781me="L3917"> 361    5         17"> >178=upcall" class="sss="6claclas6ass="6ref">attrcu_eETH_de=new_table
ef="+code=htonnew_tableh/da)errapath.c#L370" id="L370" class="line"1782me="L3917"> 368    5ref="net/17"> >1782-attmd_eflow_tbl_defe*recldeaspo)
ef="+code=htonmd_eflow_tbl_defe*recldeaspo)ovs_papath.c#L370" ield_table
ef="+code=htoneld_tablee=ka)errapath.c#L370" id="L370" class="line"1783me="L3917"> 422    5    >1783- 424
 >1784actions" cla     const s5ruct 5a href" class="line"1785me="L3917"> 424
 >178=err"rrapath.c#L370" id="L370" class="line"1786me="L3917"> 422    5   struct17"> >1786upcall" clas6ass="6ref">att

 368    5ref="net/17"> >178code=flow_key" cl6ss="s62L388" class="line"1788me="L3917"> 418
 >1788-ETH_de=REHASH_FLOW_INTERVAL=  379    5    >1789- 392}
 >179>ovs_flow_to_nlat6rs" c65id="L313" class="l1791me="L3917"> 424
 >1791* Caf="+codbass="sref">ETH_+kba>)

attdp>vport=

vport=

 372 >1792upcall" clas{ .flow6key" 6lasscm41ref="+code=tp"cm4h/daerrh ge6l_mut67operef.VPORT_CMD_NEW>( 368    5ref="net/17"> >1793-/* Requires CAP_NET_ADMIN privilege. */ 407    5c int  >1794- 392}
 >179=err" class="od.flow6key" 6lassdoi"
ef="+code=htondoi"h/daerrh ge6l_mut67opeef">vport=" clnewy * 392}
 >179="+code=flow_}s    const s5ruct 5a href" class="line"1797me="L3917"> 392}
 >1797upcall" clas{ .flow6key" 6lasscm41ref="+code=tp"cm4h/daerrh ge6l_mut67operef.VPORT_CMD_DEL=  392}
 >1798-/* Requires CAP_NET_ADMIN privilege. */ 424
 >1799-vport=" cldely *vport=" cldelovs_    const s5ruct 5a href" class="line"18n1me="L3918n> 424
 >180=upcall" clas}s    const s5ruct 5a href" class="line"18n2me="L3918n> 372 >1802upcall" clas{ .flow6key" 6lasscm41ref="+code=tp"cm4h/daerrh ge6l_mut67operef.VPORT_CMD_GET=  >1803-/* OKcfor unprivileged users. */ 407    5c int  >1804-vport=" clg5r
ef="+code=htonef">vport=" clg5rovs_s    const s5ruct 5a href" class="line"18n6me="L3918n> 392}
 >1806err" class="od.flow6key" 6lassdumpi"
ef="+code=htondumpi"h/daerrh ge6l_mut67opeef">vport=" cldum/a>"L41/openvswimd_evport=" cldum/ovs_    const s5ruct 5a href" class="line"18n7me="L3918n> 392}
 >1808upcall" clas{ .flow6key" 6lasscm41ref="+code=tp"cm4h/daerrh ge6l_mut67operef.VPORT_CMD_SET= /* Requires CAP_NET_ADMIN privilege. */ 418
 >1810err" class="od.flow6key" 6lasspolic)
ef="+code=htonpolic)h/daerrh ge6l_mut67opevport=polic)
ef="+code=htonvport=polic)e=kas    const s5ruct 5a href" class="line"1811me="L3918"> 370}
 >1811err" class="od.flow6key" 6lassdoi"
ef="+code=htondoi"h/daerrh ge6l_mut67opeef">vport=" cls5r
ef="+code=htonef">vport=" cls5rovs_s    const s5ruct 5a href" class="line"18"2me="L3918"> 418
 >1812upcall" clas}s    const s5ruct 5a href" class="line"1813me="L3918"> 363    6         18"> >181itch/}errapath.c#L370" id="L370" class="line"1814me="L3918"> 418
 >1814actirrapath.c#L370" id="L370" class="line"18"5me="L3918"> 418
 >181=err"bass="sref">ETH_+kba>)

 418
 >1816err" class="aspacket_cmd_executd"s

ETH_+k_familye=kemeta 379efrfamilyovs_errapath.c#L370" id="L370" class="line"1817me="L3918"> 368    6         18"> >1817err" class="aspacket_cmd_executd"s

ETH_+k_epde=kemeta 379efropdovs_errapath.c#L370" id="L370" class="line"1818me="L3918"> 370}
 >1818- 379    6    >181=actions" claaspacket_cmd_executd"s

"L41/openvswi

ETH_+k_grou/a>"L41/openvswi
rou/ovs_errapath.c#L370" id="L370" class="line"182ame="L3918"> 370}
 >182>* Ca}errapath.c#L370" id="L370" class="line"18"1me="L3918"> 408    6         18"> >1821* Carrapath.c#L370" id="L370" class="line"1822me="L3918"> 370}
 >1822upcaf="+codconst"aspacket_cmd_executd"s

attdp>



 368    6         18"> >1823- 370}
 >1824-class="l_

ETH_de=ARRAY_SIZEe=kemeta 379efrARRAY_SIZEovs_papath.c#L370" ire_class="l_

class="l_

 408    6 5 int  >182=err" class="ode =clasde=kehasdlass="l_multicast_grou/a>"L41/openvswimd_edp>dlass="l_multicast_grou/err" }s    const s5ruct 5a href" class="line"1826me="L3918"> 422    6href="net18"> >182="+code=flow_{ e =clasde=kehas 408    6         18"> >1827-ETH_de=ARRAY_SIZEe=kemeta 379efrARRAY_SIZEovs_papath.c#L370" ire_vport=

vport=

 388    6         18"> >1828err" class="ode =clasde=kehasvport=multicast_grou/a>"L41/openvswimd_edp>vport=multicast_grou/"+co }s    const s5ruct 5a href" class="line"1829me="L3918"> 408    6    >1829"+code=flow_{ e =clasde=kehas 408    6   } else18"> >1830-ETH_de=ARRAY_SIZEe=kemeta 379efrARRAY_SIZEovs_papath.c#L370" ire_flow_

flow_

 361    6         18"> >1831err" class="ode =clasde=kehasflow_multicast_grou/a>"L41/openvswimd_edp>flow_multicast_grou/"+co }s    const s5ruct 5a href" class="line"1832me="L3918"> 373stat6         18"> >1832"+code=flow_{ e =clasde=kehas 373stat6         18"> >1833-ETH_de=ARRAY_SIZEe=kemeta 379efrARRAY_SIZEovs_papath.c#L370" ire_packet=

packet=

 373stat6s="line" 18"> >1834- 368    6s int  >1835tch/ errapath.c#L370" id="L370" class="line"1836me="L3918"> 408    6 ref="net18"> >1836err"    const s5ruct 5a href" class="line"1837me="L3918"> 408    6         18"> >1837err"f="+codvoidy6ass="6ref">attdp>unregister=

unregister=

 408    6         18"> >1838- 379    6    >183=actions" clae=nla6tr" c6ass="srie=kemeta 379efriovs_errapath.c#L370" id="L370" class="line"184ame="L3918"> 373stat6   if ( >184>ovs_flow_to_nlat6rs" c65id="L313" class="l1841me="L3918"> 408    6         18"> >184=upcall" clasfor .6ass="6ref">attie=kemeta 379efriovs_err0;"t_cmd_executd"sie=kemeta 379efriovs_e<"t_cmd_executd"snofamiliede=kemeta 379efrnofamilieduffa;"t_cmd_executd"sie=kemeta 379efriovs_++)rrapath.c#L370" id="L370" class="line"1842me="L3918"> 408    6         18"> >1842-

 368    6rsref">ET18"> >184itch/     const s5ruct 5a href" class="line"1844me="L3918"> 408    6   if (!<18"> >1844actirrapath.c#L370" id="L370" class="line"1845me="L3918witch/datapath6         18wit>1845err"f="+code=nla6tr" c6ass="srdp>register=

register=

 408    6 ref="net18"> >184="+co" id_ href="+"srefL401 =o" class="line"1847me="L3918"> 368    6   if ( >1847actions" clae=nla6tr" c6ass="srn>registere41ref="+code=tp"n>registere4ovs_errapath.c#L370" id="L370" class="line"1848me="L3918"> 408    6         18"> >1848- 379    6    >184=actions" clae=nla6tr" c6ass="srie=kemeta 379efriovs_errapath.c#L370" id="L370" class="line"185ame="L3918"> 379    6         18"> >185>ovs_flow_to_nlat6rs" c65id="L313" class="l1851me="L3918"> 379    6         18"> >185=upcall" clas6ass="6ref">attn>registere41ref="+code=tp"n>registere4ovs_err0;flow_to_nlat6rs" c65id="L313" class="l1852me="L3918"> 408    6ref="net/18"> >1852-attie=kemeta 379efriovs_err0;"t_cmd_executd"sie=kemeta 379efriovs_e<"t_cmd_executd"sARRAY_SIZEe=kemeta 379efrARRAY_SIZEovs_papath.c#L370" ire_



 368    6    >1853-ETH_+k_fe=kemeta 379efrfovs_erre =clasde=kehas

 408    6   if (!<18"> >1854actirrapath.c#L370" id="L370" class="line"1855me="L3918witch/datapath6   185=err" class="s="s="+ca6tr" c6ass="srearf="+code=tp" clear="sr=rrapath.c#L370" i

ETH_de=fe=kemeta 379efrfovs_h.c#L370" iclasheadeepde=kemeta 379efropdovs_s    const s5ruct 5a href" class="line"1856me="L3918"> 408    6rref="net18"> >185="+code=flow_tas" claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa="sref">ETH_de=fe=kemeta 379efrfovs_h.c#L370" iclasheadenoopde=kemeta 379efrn_opdovs_)errapath.c#L370" id="L370" class="line"1857me="L3918"> 368    6r  }
 >185 -attearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"1858me="L3918"> 408    6 ef="net/18"> >1858-atterrorf="+code=tp" clearor="srerrapath.c#L370" id="L370" class="line"1859me="L3918"> 379    6    >1859-attn>registere41ref="+code=tp"n>registere4ovs_++errapath.c#L370" id="L370" class="line"186ame="L3918"> 408    6ref="net/18"> >186>ovs_flow_to_nlat6rs" c65id="L313" class="l1861me="L3918"> 361    6r   >186=upcall" class="sss="ath.6ass="6ref">attfe=kemeta 379efrfovs_h.c#L370" iclasheadegrou/a>"L41/openvswi
rou/ovs_)r" id_ href="+"srefL401 =o" class="line"1862me="L3918"> 408    6ref="net/18"> >1862-attearf="+code=tp" clear="sr=rrapath.c#L370" i

"L41/openvswi

ETH_de=fe=kemeta 379efrfovs_h.c#L370" iclasheadegrou/a>"L41/openvswi
rou/ovs_)errapath.c#L370" id="L370" class="line"1863me="L3918"> 408    6r   >1863-attearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"1864me="L3918"> 368    6ref="net/18"> >1864actions" clattttttttttttttttVVVVVVVVgotoc6ass="6ref">atterrorf="+code=tp" clearor="srerrapath.c#L370" id="L370" class="line"1865me="L3918"> 408    6r   >186=err" class="s="s="+c     const s5ruct 5a href" class="line"1866me="L3918"> 408    6rref="net18"> >1866upcall" clas     const s5ruct 5a href" class="line"1867me="L3918"> 397stat6r  }
 >186code=flow_key" cl6ss="s62L388" class="line"1868me="L3918"> 418
 >1868- 418
 >186itch/datapath.c#L500" i59L390" class="line"187ame="L3918"> 390    6href="net18"> >187>* Ca6ass="6ref">atterrorf="+code=tp" clearor="sr:flow_key" cl6ss="s62L388" class="line"1871me="L3918"> 408    6ref="net/18"> >187=upcall" clas6ass="6ref">attdp>unregister=

unregister=

attn>registere41ref="+code=tp"n>registere4ovs_)errapath.c#L370" id="L370" class="line"1872me="L3918"> 408    6 class="c18"> >1872- 418
 >187itch/     const s5ruct 5a href" class="line"1874me="L3918"> 368    6href="net18"> >1874actirrapath.c#L370" id="L370" class="line"1875me="L3918"> 418
 >1875err"f="+code=nla6tr" c6ass="sr__ini"
ef="+code=hton__ini"upcal6ass="6ref">attdp>ini"
ef="+code=htondp>ini"ovs_pvoid)rrapath.c#L370" id="L370" class="line"1876me="L3918"> 422    6hef="net/18"> >187="+co" id_ href="+"srefL401 =o" class="line"1877me="L3918"> 408    6r  }
 >1877err" class="aspacket_cmd_executd"s=eflow_key *ETH_+k_dummy_buff"L41/openvswitdummy_buf="srerrapath.c#L370" id="L370" class="line"1878me="L3918"> 408    6 ef="net/18"> >1878- 370}
 >187itch/datapath.c#L500" i59L390" class="line"188ame="L3918"> 422    5   if (!<18"> >188>* Called wita6tr" c6ass="srBUILD_BUG_ONf="+code=tp" clBUILD_BUG_ONovs_psizeofpsamp6 clas607kb" classmd_ebuf_cff"L41/openvswitmd_ebuf_cfovs_)r.c#L sizeofp="sref">ETH_+k_dummy_buff"L41/openvswitdummy_buf="srh.c#L370" iclasheadecff"L41/openvswitcbuffad)errapath.c#L370" id="L370" class="line"1881me="L3918"> 361    5         18"> >1881* Carrapath.c#L370" id="L370" class="line"1882me="L3918"> 368    5ref="net/18"> >1882- *"O id vSL370" "L370"ing class="l\n" 422    5    >188itch/datapath.c#L524" i52L394" class="line"1884me="L3918"> 424
 >1884actions" clat_cmd_executd"searf="+code=tp" clear="sr=rrapath.c#L370" imd_eflow_ini"
ef="+code=htonmd_eflow_ini"ovs_p)errapath.c#L370" id="L370" class="line"1885me="L3918"> 424
 >188=err" class="ath.6ass="6ref">attearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"1886me="L3918"> 422    5   struct18"> >188="+code=flow_tas" clagotoc6ass="6ref">atterrorf="+code=tp" clearor="srerrapath.c#L370" id="L370" class="line"1887me="L3918"> 368    5ref="net/18"> >188code=flow_key" cl6ss="s62L388" class="line"1888me="L3918"> 418
 >1888- 379    5    >188=actions" claaf (6ass="6ref">attearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"189ame="L3918"> 392}
 >189>* Called witttttttttgotoc6ass="6ref">attearoreflow_exi"f="+code=tp" clearoreflow_exi"="srerrapath.c#L370" id="L370" class="line"1891me="L3918"> 424
 >1891* Carrapath.c#L370" id="L370" class="line"1892me="L3918"> 372 >1892-device_notifie*ovs_)errapath.c#L370" id="L370" class="line"1893me="L3918"> 368    5ref="net/18"> >1893-attearf="+code=tp" clear="sr)rrapath.c#L370" id="L370" class="line"1894me="L3918"> 407    5c int  >1894-attearorevport=exi"f="+code=tp" clearorevport=exi"="srerrapath.c#L370" id="L370" class="line"1895me="L3918"> 392}
 >189=err"rrapath.c#L370" id="L370" class="line"1896me="L3918"> 392}
 >1896upcall" clas6ass="6ref">attearf="+code=tp" clear="sr=rrapath.c#L370" idp>register=

register=

 392}
 >1897upcall" clasaf (6ass="6ref">attearf="+code=tp" clear="sr <"0)rrapath.c#L370" id="L370" class="line"1898me="L3918"> 392}
 >1898-attearoreunreg_notifie* 424
 >189itch/datapath.c#L500" i59L390" class="line"19name="L3919name24
190>* Called wita6tr" c6ass="srscheduleldelayeclwork
ef="+code=htonscheduleldelayeclworkovs_pe =clasde=kehasETH_de=REHASH_FLOW_INTERVAL=  >1902- 368    5ref="net/19n> >190itch/datapath.c#L524" i52L394" class="line"19n4me="L3919n> 407    5c int  >1904-attearoreunreg_notifie*attunregister=L37device_notifie*device_notifie*ovs_)errapath.c#L370" id="L370" class="line"19n6me="L3919n> 392}
 >1906err"6ass="6ref">attearorevport=exi"f="+code=tp" clearorevport=exi"="sr:flow_key" cl6ss="s62L388" class="line"19n7me="L3919n> 392}
 >1908upca6ass="6ref">attearoreflow_exi"f="+code=tp" clearoreflow_exi"="sr:flow_key" cl6ss="s62L388" class="line"19n9me="L3919n> 424
 >1909- 418
 >191>* Ca6ass="6ref">atterrorf="+code=tp" clearor="sr:flow_key" cl6ss="s62L388" class="line"1911me="L3919"> 370}
 >1911err" class="low_keya6tr" c6ass="srearf="+code=tp" clear="srerrapath.c#L370" id="L370" class="line"19"2me="L3919"> 418
 >1912upca     const s5ruct 5a href" class="line"1913me="L3919"> 363    6         19"> >191itch/datapath.c#L524" i52L394" class="line"1914me="L3919"> 418
 >1914actif="+codvoidy6ass="6ref">attdp>cleanu/a>"L41/openvswidp>cleanu/ovs_pvoid)rrapath.c#L370" id="L370" class="line"19"5me="L3919"> 418
 >191=err"" id_ href="+"srefL401 =o" class="line"19"6me="L3919"> 418
 >1916upcall" clas6ass="6ref">attcancelldelayeclwork_syncf"L41/openvswitcancelldelayeclwork_syncovs_pe =clasde=kehas 368    6         19"> >1917upcall" clasapath.c#L370" ircu_barrie* 370}
 >1918-unregister=

unregister=

attARRAY_SIZEe=kemeta 379efrARRAY_SIZEovs_papath.c#L370" ire_



 379    6    >1919-device_notifie*ovs_)errapath.c#L370" id="L370" class="line"192ame="L3919"> 370}
 >192>* Called wita6tr" c6ass="srmd_evport=exi"f="+code=tp" clmd_evport=exi"ovs_p)errapath.c#L370" id="L370" class="line"19"1me="L3919"> 408    6         19"> >192=upcall" clas6ass="6ref">attmd_eflow_exi"f="+code=tp" clmd_eflow_exi"="srp)errapath.c#L370" id="L370" class="line"1922me="L3919"> 370}
 >1922upca     const s5ruct 5a href" class="line"1923me="L3919"> 368    6         19"> >192itch/datapath.c#L524" i52L394" class="line"1924me="L3919"> 370}
 >1924-attmodulelini"
ef="+code=htonmodulelini"ovs_papath.c#L370" ire_ini"
ef="+code=htondp>ini"ovs_)errapath.c#L370" id="L370" class="line"1925me="L3919"> 408    6 5 int  >192=err"6ass="6ref">attmodulelexi"f="+code=tp" clmodulelexi"ovs_papath.c#L370" ire_cleanu/a>"L41/openvswidp>cleanu/ovs_)errapath.c#L370" id="L370" class="line"1926me="L3919"> 422    6href="net19"> >1926err"    const s5ruct 5a href" class="line"1927me="L3919"> 408    6         19"> >1927-"O id vSL370" "L370"ing class="l" 388    6         19"> >1928upca6ass="6ref">attMODULE_LICENSEe=kemeta 379efrMODULE_LICENSEovs_p6span+code=tpsaming">"GPL" 408    6    >1929"+co


foote*<> The original LXR software by the rapath.c#http://sourceforge.L370projects/lx*<>LXR communi"yovs_skthis experimental version by rapath.c#mailto:lx*@ ux.no">lx*@ ux.noovs_.
subfoote*<> lx*. ux.no kindly hosted by rapath.c#http://www.redpill- pro.no">Redpill L pro ASovs_skprovider of L ux"consulting and " ir"+cons services since 1995.