You can set the rate limit on the network interface of your VM
For downstream traffic (from somewhere else to the VM), you need to throttle the sender, if the receiver should set a limit, the only way it can do that is by dropping or delaying packets (which causes issues with latency and buffers). OVS can do that (policing) on the vlan, link or port, but you run into the issue that you need to squeeze somewhere to inform the sender to slow down, preferably close(r) to the source.