On Tue, Aug 16, 2016 at 11:11 AM,  <b_b_si...@dell.com> wrote:
> Dell - Internal Use - Confidential
>
>
>>From: Albert Chu [mailto:ch...@llnl.gov]
>>Sent: Monday, August 8, 2016 10:27 PM
>>To: Zdenek Styblik <zdenek.styb...@gmail.com>
>>Cc: Singh, B B <b_b_si...@dell.com>; ipmitool-devel 
>><ipmitool-devel@lists.sourceforge.net>
>>Subject: Re: [Ipmitool-devel] Can't Disable VLAN ID!!!
>
>>As a fellow IPMI project maintainer, I would side with the opinion the bug is 
>>on the BMC.  The BMC should not care what the VLAN ID is when it is being 
>>disabled, only when it's being enabled.
>
>>That said, it would perhaps be nice to get a workaround into ipmitool to deal 
>>with this.  Perhaps nothing more than a "--vlan-id" or something like that 
>>option to allow the user to override the default.
>
>>Al
>
> Hi Albert,
>
> The issue of validating the VLAN ID during a disable command has been 
> corrected in the BMC firmware, but there is another incongruency related to 
> this defect that may cause headaches for ipmitool users.
>
> Currently, when a LAN parameter set command is sent through ipmitool, the 
> corresponding parameter data is requested and compared to the command to 
> verify that the data was written correctly:
>
>
> set_lan_param_wait
>
>
>
>                 if (memcmp(data, p->data, len) != 0) {
>                         sleep(IPMI_LANP_TIMEOUT);
>                         if (retry-- == 0) {
>                                 lprintf(LOG_WARNING, "LAN Parameter Data does 
> not match!  "
>                                        "Write may have failed.");
>                                 return -1;
>                         }
>                         continue;
>                 }
>
>
> Since we do send the VLAN ID in this return data, regardless of whether VLAN 
> is disabled or not, this mismatch between requested and received parameters 
> causes ipmitool to retry the command 10 times and return an error.
>
> In the interest of resolving this issue for all users of the tool, have made 
> these below changes in ipmitool. Please review it & let me know the comments.
>
> --- ipmi_lanp.c 2016-08-09 15:29:56.000000000 +0530
> +++ ipmi_lanp_with_changes.c    2016-08-09 15:29:56.000000000 +0530
> @@ -1319,10 +1319,20 @@
>  {
>         uint8_t data[2];
>         int rc;
> +       struct lan_param * p; //handling for vlan disable, get the vlan id 
> before sending
>
>         if (string == NULL) {
> -               data[0] = 0;
> -               data[1] = 0;
> +               lprintf(LOG_NOTICE, "get vlan id .");
> +               p = get_lan_param(intf, chan, IPMI_LANP_VLAN_ID);
> +               if (p != NULL && p->data != NULL) {
> +                       int id = ((p->data[1] & 0x0f) << 8) + p->data[0];
> +                       if (id < 1 || id > 4094) {
> +                               lprintf(LOG_NOTICE, "vlan id retrieved  is 
> not 1 and 4094.");
> +                               return -1;
> +                       }
> +                       data[0] = p->data[0];
> +                       data[1] = p->data[1];
> +               }
>         }
>         else {
>                 int id = 0;
>
> Regards
> Balaji Singh

Hello Balaji,

I'm glad to hear you've managed to BMC patched. As for the other
finding, please, open ticket at sf.net and attach the patch.

Thanks,
Z.

------------------------------------------------------------------------------
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to