Actually it has nothing to do with IGP today. BGP implementations can mark redistributed routes as IGP (BIRD, Juniper) or as INCOMPLETE (Cisco, Quagga, and others).
A best practice is most probably to mark/left everything as Origin=IGP in order to completely ignore this (now useless) attribute in the BGP path selection algo.
Dear,
I have a topology where each AS is represented by a BIRD router. But in the BIRD table of the routers. The announcements received are marked as IGP but all the BGP sessions are done between different ASes. Do you know why it occur? Follow an example about a prefix announced by two different ASes and marked as IGP origin in a third one.
10.3.1.0/24 unicast [SDNRTR 13:18:10.201] * (100) [AS65507i]
via 192.168.1.1 on eth0
Type: BGP univ
BGP.origin: IGP