Skip to content

Commit

Permalink
Change load_on_a_stick_tap to load_on_a_stick_iface using RawSocket
Browse files Browse the repository at this point in the history
  • Loading branch information
dpino committed May 31, 2018
1 parent 55d387e commit f49c9c6
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/program/lwaftr/run/run.lua
Expand Up @@ -175,7 +175,7 @@ function run(args)
ring_buffer_size = opts.ring_buffer_size
}
if lib.is_iface(opts['on-a-stick']) then
return setup.load_on_a_stick_tap(graph, lwconfig, options)
return setup.load_on_a_stick_iface(graph, lwconfig, options)
else
return setup.load_on_a_stick(graph, lwconfig, options)
end
Expand Down
23 changes: 13 additions & 10 deletions src/program/lwaftr/setup.lua
Expand Up @@ -252,18 +252,21 @@ function load_phy(c, conf, v4_nic_name, v6_nic_name, ring_buffer_size)
link_sink(c, v4_nic_name..'.'..v4_info.rx, v6_nic_name..'.'..v6_info.rx)
end

function load_on_a_stick_tap (c, conf, args)
local Tap = require("apps.tap.tap").Tap
local pciaddr, id, queue = lwutil.parse_instance(conf)
local device = {tx = 'output', rx = 'input'}
lwaftr_app(c, conf, pciaddr)
local v4_nic_name, v6_nic_name, v4v6, mirror = args.v4_nic_name,
args.v6_nic_name, args.v4v6, args.mirror
function load_on_a_stick_iface (c, conf, args)
local RawSocket = require("apps.socket.raw").RawSocket
local iface, id, queue = lwutil.parse_instance(conf)
local device = {tx = 'tx', rx = 'rx'}

lwaftr_app(c, conf, iface)

local v4_nic_name, v6_nic_name = args.v4_nic_name, args.v6_nic_name
local v4v6, mirror = args.v4v6, args.mirror

if v4v6 then
assert(queue.external_interface.vlan_tag == queue.internal_interface.vlan_tag)
config.app(c, 'nic', Tap, {name=pciaddr})
config.app(c, 'nic', RawSocket, iface)
if mirror then
local Tap = require("apps.tap.tap").Tap
config.app(c, 'mirror', Tap, {name=mirror})
config.app(c, v4v6, V4V6, {mirror=true})
config.link(c, v4v6..'.mirror -> mirror.input')
Expand All @@ -276,8 +279,8 @@ function load_on_a_stick_tap (c, conf, args)
link_source(c, v4v6..'.v4', v4v6..'.v6')
link_sink(c, v4v6..'.v4', v4v6..'.v6')
else
config.app(c, v4_nic_name, driver, {name=pciaddr})
config.app(c, v6_nic_name, driver, {name=pciaddr})
config.app(c, v4_nic_name, RawSocket, iface)
config.app(c, v6_nic_name, RawSocket, iface)

link_source(c, v4_nic_name..'.'..device.tx, v6_nic_name..'.'..device.tx)
link_sink(c, v4_nic_name..'.'..device.rx, v6_nic_name..'.'..device.rx)
Expand Down

0 comments on commit f49c9c6

Please sign in to comment.