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

BPF Dump policies without assembly replaced with more condensed rule counters output #7954

Merged
1 commit merged into from Aug 29, 2023

Conversation

ghost
Copy link

@ghost ghost commented Aug 23, 2023

Currently the Calico BPF utility policy dump is very verbose and includes assembly which is not relevant to most users i.e. output from the command:
kubectl exec calico-node-xyz -n calico-system -- calico-node -bpf policy dump cali2c5f0ef34cf ingress

Therefore, this simple requirement is to omit the irrelevant assembly and instead present more condense output including the rule counters only e.g.

IfaceName: cali2c5f0ef34cf
Hook: tc egress
Error: 
Policy Info:
// Start of policy default.policy-tcp
// Start of rule action:"allow" protocol:<name:"tcp" > src_net:"11.0.0.8/32" src_net:"10.0.0.8/32" src_ports:<first:8055 last:8055 > src_ports:<first:100 last:105 > dst_net:"12.0.0.8/32" dst_net:"13.0.0.8/32" dst_ports:<first:9055 last:9055 > dst_ports:<first:200 last:205 > rule_id:"STaSnQYmIymqngjx" 
// count = 0

However, there is an option to append either -a or --asm to the command above to include the original verbose output as before i.e.
kubectl exec calico-node-xyz -n calico-system -- calico-node -bpf policy dump cali2c5f0ef34cf ingress -a
OR
kubectl exec calico-node-xyz -n calico-system -- calico-node -bpf policy dump cali2c5f0ef34cf ingress --asm

Description

Related issues/PRs

Todos

  • Tests
  • Documentation
  • Release note

Release Note

calico-node -bpf dump policy now suppresses printing assembly by default. You need to use --asm flag [or -a] to see the assembly as well.

Reminder for the reviewer

Make sure that this PR has the correct labels and milestone set.

Every PR needs one docs-* label.

  • docs-pr-required: This change requires a change to the documentation that has not been completed yet.
  • docs-completed: This change has all necessary documentation completed.
  • docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

  • release-note-required: This PR has user-facing changes. Most PRs should have this label.
  • release-note-not-required: This PR has no user-facing changes.

Other optional labels:

  • cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
  • needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@ghost ghost self-requested a review as a code owner August 23, 2023 19:00
@marvin-tigera marvin-tigera added this to the Calico v3.27.0 milestone Aug 23, 2023
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels Aug 23, 2023
Copy link
Contributor

@tomastigera tomastigera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the --verbose flag! 👍 see my comment on the output.

felix/cmd/calico-bpf/commands/policy_debug.go Outdated Show resolved Hide resolved
@ghost ghost force-pushed the CORE-9299_TidyBpfPolicyOutput branch from ff29370 to 9c88dd4 Compare August 24, 2023 08:22
@ghost ghost added docs-not-required Docs not required for this change area/bpf eBPF Dataplane issues labels Aug 24, 2023
@marvin-tigera marvin-tigera removed the docs-pr-required Change is not yet documented label Aug 24, 2023
@ghost ghost force-pushed the CORE-9299_TidyBpfPolicyOutput branch 3 times, most recently from 332ff27 to 93683ec Compare August 25, 2023 10:11
@ghost ghost requested a review from tomastigera August 25, 2023 10:13
Copy link
Contributor

@tomastigera tomastigera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just a second thought nit ... i wonder whether --verbose would not collide with a possible global --verbose flag and whether something like --asm | Includes eBPF assembler code of the policy program would be better. Or perhaps --code 🤔

@ghost ghost force-pushed the CORE-9299_TidyBpfPolicyOutput branch from 93683ec to 152c0df Compare August 27, 2023 12:59
@ghost
Copy link
Author

ghost commented Aug 28, 2023

LGTM, just a second thought nit ... i wonder whether --verbose would not collide with a possible global --verbose flag and whether something like --asm | Includes eBPF assembler code of the policy program would be better. Or perhaps --code 🤔

Thanks @tomastigera - actually I did think about -v shorthand flag for verbose here may collide with global -v for version but I see that this was OK because for verbose as one would add the -v flag after the policy dump command i.e. like this
policy dump cali2c5f0ef34cf ingress -v so all seemed fine - I wasn't aware of the --verbose global flag though

However, I like this suggestion to use something else - I think --asm is the best option because it is the most specific option for this particular command policy dump so I would like to change to --asm accordingly - thanks for the suggestion / recommendation!

@ghost ghost closed this Aug 28, 2023
@ghost ghost reopened this Aug 28, 2023
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented and removed release-note-required Change has user-facing impact (no matter how small) docs-not-required Docs not required for this change labels Aug 28, 2023
@ghost
Copy link
Author

ghost commented Aug 28, 2023

Update --verbose flag to --asm flag as discussed above

@ghost ghost force-pushed the CORE-9299_TidyBpfPolicyOutput branch from 02b5ff6 to 051d6ed Compare August 28, 2023 10:53
@ghost ghost force-pushed the CORE-9299_TidyBpfPolicyOutput branch from 051d6ed to 0595f48 Compare August 28, 2023 10:54
@ghost ghost requested a review from tomastigera August 28, 2023 15:45
Copy link
Contributor

@tomastigera tomastigera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ghost ghost merged commit dbf696c into projectcalico:master Aug 29, 2023
2 checks passed
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/bpf eBPF Dataplane issues docs-pr-required Change is not yet documented release-note-required Change has user-facing impact (no matter how small)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants