[Users] trouble with veth device in combination with long veid

Thorsten Schifferdecker tsd at debian.systs.org
Thu Jun 7 11:02:32 EDT 2007


Hi,

or export the right VEID from /proc/vz/veth:

/proc/vz/veth :
MAC_VE0	veth_dev_on_VE0	mac_dev_VE dev_VE VEID deny

Attached a workaround patch, to solve this issue.

Regards,
Thorsten

Kristian F. Høgh schrieb:
> On Thursday den 7. June 2007 11:32:39 Kirill Korotaev wrote:
>> Kristian F. Høgh wrote:
>>> On Wednesday den 6. June 2007 17:14:57 Nils Domrose wrote:
>>>> Hi,
>>>>
>>>> we are facing a problem with veth device in combination with long veids.
>>>> if we configure a veth device as described in the wiki, we are unable
>>>> to start that VE with the following error:
>>> In veth.c a buffer with length 11 is allocated.
>>> The buffer is used as follows:
>>> snprintf(buf, sizeof(buf), "VEID=%d", veid);
>>>
>>> As 6 characters are used for static content (VEID= + '\0'), only 5
>>> characters are left. Your VEID (249104) is 6 characters long.
>>>
>>> Apply the following patch, and you should be running.
>>> (An alternative is to limit your VEID in the range 100 to <= 99999)
>>>
>>>
>>> --- a/src/lib/veth.c
>>> +++ b/src/lib/veth.c
>>> @@ -90,7 +90,7 @@ static int veth_dev_remove(vps_handler *h, envid_t
>>> veid, veth_dev *dev) static int run_vznetcfg(envid_t veid, veth_dev *dev)
>>>  {
>>> 	int ret;
>>> -	char buf[11];
>>> +	char buf[12];
>>> 	char *argv[] = {VZNETCFG, "init", "veth", NULL, NULL};
>>> 	char *env[2];
>>>
>>> (Last line is empty)
>> In kernel if name is limited to 16 bytes, i.e. to 15 chars (plus zero).
>> 4 chars for "veth",
> I call my veth interfaces ve${VEID}.0, ve${VEID}.1 ...
> So VEID 1234 will have an interface called ve1234.0 in VE0 (eth0 in VE 1234)
> 
>> so 11 chars for number. VEID is int, so limited 
>> to 2^32, which is no more then 10 chars length. So everything should
>> be fine except this silly bug in vzctl.
> What if I call my veth interfase abcdefghij${VEID} ?
> 
> (Or do I misunderstand?)
> 
>> Why have you chosen 12 instead of 11?
>> AFAICS it should be sizeof("VEID=") + 10 + 1 (for \0) = 16
> I chose 12 because 11 was to small :-)
> It was ment as a workaround. 16 must be right.
> 
>> Thanks,
>> Kirill
> 
> Regards,
> Kristian.
> 
> _______________________________________________
> Users mailing list
> Users at openvz.org
> https://openvz.org/mailman/listinfo/users

-------------- next part --------------
A non-text attachment was scrubbed...
Name: diff-workaround_veth_export_big_VEID-20070607.patch
Type: text/x-patch
Size: 341 bytes
Desc: not available
Url : http://openvz.org/pipermail/users/attachments/20070607/6419f06c/diff-workaround_veth_export_big_VEID-20070607.bin


More information about the Users mailing list