let build_node_and_dpds_selection ?(nd_marks=[]) mark =
let m_spare = Marks.mk_user_spare in
let nd_marks = build_simple_node_selection ~nd_marks:nd_marks m_spare in
let nd_marks =
if Marks.is_ctrl_mark mark
then
let m_ctrl = Marks.mk_user_mark ~ctrl:true ~data:false ~addr:false in
build_ctrl_dpds_selection ~nd_marks:nd_marks m_ctrl
else nd_marks
in
let nd_marks =
if Marks.is_addr_mark mark
then
let m_addr = Marks.mk_user_mark ~ctrl:false ~data:false ~addr:true in
build_addr_dpds_selection ~nd_marks:nd_marks m_addr
else nd_marks
in
let nd_marks =
if Marks.is_data_mark mark
then
let m_data = Marks.mk_user_mark ~ctrl:false ~data:true ~addr:false in
build_data_dpds_selection ~nd_marks:nd_marks m_data
else nd_marks
in
nd_marks