How to change the source MAC while sending packet
I have a problem in sending udp packets.The problem details are...
I configured 6 Ip's, 3 in one bond(bond0.207), next 3 in other bond(bond1.207), where 207 is the VLAN id for these 6 Ips. When a packet recived, i have to select one Ip among these 6 ip's in round-robbin fashion.
For 1st packet (using 1st Ip in bond0), an ICMP request delivered for finding the destination MAC, and the same is getting updated and then the packet is being forwded to destination. While sending packet bond0 is selected by the ethernet driver as source MAC. For the 2nd packet(where i have to select 2nd Ip, and so on...), it is not sending the ICMP message to find the MAC of destination(this is fine) as it is already updated in arp cache.
But the problem here is, for bond1 ip's also bond0's MAC is being used as source MAC to send the packet insted of bond1 's MAC address.
I tried to change the Source MAC in skb->mac.raw(in netfilter kernal module), but it is not effecting the outgoing packet.
Is there anyway to change the source MAC so that, when bond0 's Ip's are used, bond0 's MAC shud be used and when bond1 Ip's are used, bond1 's MAC shud be used....
Thanks in advance