| #!/bin/bash |
| |
| # Set mctpi2c link up and assign local address. |
| localEid=8 |
| busNum=9 |
| maxRetries=5 |
| retryInterval=1 |
| |
| retry_command() { |
| |
| command="$1" |
| retries=0 |
| |
| while [ $retries -lt $maxRetries ]; do |
| if bash -c "$command"; then |
| return 0 |
| else |
| retries=$((retries + 1)) |
| echo "Retry $retries/$maxRetries: Command failed. Retrying in $retryInterval seconds..." |
| sleep $retryInterval |
| fi |
| done |
| |
| return 1 |
| } |
| |
| # Retry mctp link command |
| if ! retry_command "mctp link set mctpi2c${busNum} up"; then |
| echo "Failed to set mctp link after $maxRetries attempts." |
| exit 1 |
| fi |
| |
| # Check if local EID is already set |
| mctpOutput=$(mctp address show) |
| if echo "$mctpOutput" | grep -q "mctpi2c${busNum}"; then |
| echo "mctpi2c${busNum} local EID already set" |
| else |
| # Retry mctp addr add command |
| if ! retry_command "mctp addr add ${localEid} dev mctpi2c${busNum}"; then |
| echo "Failed to add mctp address after $maxRetries attempts." |
| exit 1 |
| fi |
| fi |
| echo "mctpi2c${busNum} local EID set to ${localEid}" |
| exit 0 |