Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DDP Tool failing to get ddp profile for devices #516

Open
Eoghan1232 opened this issue Dec 8, 2023 · 10 comments
Open

DDP Tool failing to get ddp profile for devices #516

Eoghan1232 opened this issue Dec 8, 2023 · 10 comments

Comments

@Eoghan1232
Copy link
Collaborator

Eoghan1232 commented Dec 8, 2023

What happened?

Deploy DP from main with configMap specifying DDP Profile
Device did not get picked up

In the code, I can see we run it as cmd := ddpExecCommand("ddptool", "-l", "-a", "-j", "-s", dev)

I ran ddptool inside of DP container with this flag and you can see it returned error 5, which is what showed in DP logs.

I ran against PCI Address instead and got the DDP profile.

/ # ddptool
Intel(R) Dynamic Device Personalization Tool
DDPTool version 1.0.1.12
Copyright (C) 2019 - 2021 Intel Corporation.

NIC  DevId D:B:S.F      DevName         TrackId  Version      Name
==== ===== ============ =============== ======== ============ ==============================
001) 158B  0000:18:00.1 enp24s0f1       -        -            No profile loaded
002) 1592  0000:AF:00.0 enp175s0np0     0        1.3.10.0     ICE Wireless Edge Package
003) 1592  0000:B2:00.0 enp178s0np0     0        1.3.26.0     ICE OS Default Package
/ # ddptool -l -a -j -s enp175s0np0
{"DDPInventory":{
                "error": "5"
                "message": "No driver available"
        }
}
/ # ddptool -l -a -j -s 0000:AF:00.0
{
        "DDPInventory": {
                "device": "1592",
                "address": "0000:AF:00.0",
                "name": "enp175s0np0",
                "display": "Intel(R) Ethernet Network Adapter E810-2C-Q2",
                "DDPpackage": {
                        "track_id": "0",
                        "version": "1.3.10.0",
                        "name": "ICE Wireless Edge Package"
                }
        }
}

What are the minimal steps needed to reproduce the bug?

Just deploy from main

Seems to be a bug with DDP Tool? we pass the pci address to the PCI.

@Eoghan1232
Copy link
Collaborator Author

I can see we do pass the pci address, so not sure why it's not working. it should work.

@Eoghan1232
Copy link
Collaborator Author

/ # /usr/bin/ddptool -l -a -j -s 0000:AF:00.0
{
        "DDPInventory": {
                "device": "1592",
                "address": "0000:AF:00.0",
                "name": "enp175s0np0",
                "display": "Intel(R) Ethernet Network Adapter E810-2C-Q2",
                "DDPpackage": {
                        "track_id": "0",
                        "version": "1.3.10.0",
                        "name": "ICE Wireless Edge Package"
                }
        }
}
/ #

I checked the full cmd, and it failed but looked valid.
I ran the exact cmd inside of pod, and this worked.

@Eoghan1232
Copy link
Collaborator Author

seems ddp tool will always return a non-zero exit status code.
so even when it succeeds, it will return the exit code "5".
this is why it's caught as an error after the cmd.Run()

so this seems to be a bug in ddptool....

or maybe we need to check the contents to see if we received the ddp profile, otherwise return error....

@SchSeba
Copy link
Collaborator

SchSeba commented Dec 20, 2023

I was never in favor of using that ddp tool :(
if you can resume the work that was done here #387 it will be great to have a single valid interface to use ddp without the need for external programs

@Eoghan1232
Copy link
Collaborator Author

I was never in favor of using that ddp tool :( if you can resume the work that was done here #387 it will be great to have a single valid interface to use ddp without the need for external programs

Yes - although I don't think the netlink pkg will work with FVL cards - so it needs to be tested. will set something up internally for this validation.

@SchSeba
Copy link
Collaborator

SchSeba commented Dec 21, 2023

oh you maybe right :(
so maybe in #387 we can have a fallback to this file and lets have a fix for the running of the ddp tool

@Eoghan1232
Copy link
Collaborator Author

I've updated #387

I also checked ddp-tool, and tried the latest version - it does not work against VF's
I've created a bug for that team to fix the issue, I will create separate PR to update ddp-tool version once it's ready and validated.

@SchSeba
Copy link
Collaborator

SchSeba commented Aug 19, 2024

Hi @Eoghan1232 any update on the DDP tool?

@Eoghan1232
Copy link
Collaborator Author

Hey @SchSeba so they only recently got back to me, and seems the latest version of DDP works, I need to retest this and update the version we use in the repo
Possibly they need to release the version they tested with as it doesn't seem to be public.
Also the version of ice driver may matter, so I will see if there is docs on the min supported version, etc and update our readMe

@Eoghan1232
Copy link
Collaborator Author

Okay @SchSeba so I spoke to internal team, they said they fixed in latest version, but when I tested, it still fails.
so apparently dpptool cares for all devices, not just the specific one we specify, so if one device has no driver and fails, it will return error code 5, even if the device is returned with its DDP Profile

go run main.go

exit status 5
{
        "DDPInventory": {
                "device": "1889",
                "address": "0000:4B:01.0",
                "name": "ens785f0v0",
                "display": "Intel(R) Ethernet Adaptive Virtual Function",
                "DDPpackage": {
                        "track_id": "C0000001",
                        "version": "1.3.26.0",
                        "name": "ICE OS Default Package"
                }
        }
}

you can see it returns ddp profile for VF, but since exit status 5 is returned for an unrelated device, the code will fail :/

Still in conversations with them on what to do, but a bug is filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants