def _nexthop_actions(self, eth_dst, vlan): ofmsgs = [] if self.routers: ofmsgs.append(valve_of.set_vlan_vid(vlan.vid)) ofmsgs.extend([ valve_of.set_eth_src(self.faucet_mac), valve_of.set_eth_dst(eth_dst), valve_of.dec_ip_ttl()]) return ofmsgs
def rewrite_vlan(output_dict): vlan_actions = [] if 'pop_vlans' in output_dict: for _ in range(output_dict['pop_vlans']): vlan_actions.append(valve_of.pop_vlan()) # if vlan tag is specified, push it. if 'vlan_vid' in output_dict: vlan_actions.extend(valve_of.push_vlan_act(output_dict['vlan_vid'])) # swap existing VID elif 'swap_vid' in output_dict: vlan_actions.append(valve_of.set_vlan_vid(output_dict['swap_vid'])) # or, if a list, push them all (all with type Q). elif 'vlan_vids' in output_dict: for vid in output_dict['vlan_vids']: vlan_actions.extend(valve_of.push_vlan_act(vid)) return vlan_actions